Laden...

JumpList CustomCategory Listenverwaltung

Erstellt von rollerfreak2 vor 11 Jahren Letzter Beitrag vor 11 Jahren 979 Views
rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren
JumpList CustomCategory Listenverwaltung

Hallo zusammen,

ich habe ein Problem mit JumpList und CustomCategory und dem verwalten eigener Listen unterhalb der Categories. Kurz zur Sematik meiner Listen. Jeder Eintrag einer Liste ist einer eindeutigen Kategorie zugeordnet wobei 2 Elemente sich eine Categorie teilen können. Es wird immer das zuletzt letzte JumpListLink Element hinzugefügt. Ich verwalte das selber in einer XML und halte dort höchstens 10 Elemente vor. Das klappt soweit ohne Probleme. D.h. wenn das Tool das erstmal gestartet wird dann ist die XML leer und auch keine Kategorie enthalten. Wenn das erste mal mit dem Tool eine Aktion ausgeführt wird dann wird diese Aktion in und die dazugehörige Kategorie hinzugefügt usw. alles ohne Probleme.

Das Problem ist nun wenn ein User aus der Jumplist ein Element raus löscht dann habe ich in der (ich nutze das WindowsAPICodePack) JumpList.RemovedDestinations ein Element drin. Das jedoch ist immer null! Das heißt ich kann es nicht aus meiner XML raus werfen. Hier mal wie ich mein JumpListLink befülle (JumpListElement ist eine eigene Klasse).


JumpListLink link = new JumpListLink(Assembly.GetExecutingAssembly().Location, jumpListElement.Name);
link.Arguments = jumpListElement.Arguments;
link.Path = Assembly.GetExecutingAssembly().Location;
link.WorkingDirectory = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName;

Das Problem ist nämlich wenn ich das Element nicht aus der XML entferne und wieder in die Kategorie rein schreibe dann ist die JumpList anschließend komplett leer?

Ich mal in das APICodePack rein geschaut und auch den Grund dafür gefunden! Er versucht das gelöschte JumpListItem in ein IShellLinkW bzw IShellLink zu casten aber das ist es natürlich nicht.

Weiß jemand was ich falsch mache oder wie ich mein Vorhaben bewerkstelligen kann?

Edit: Komisch ist das wenn ich ein Element aus der JumpList entferne was das Tool noch läuft dann ist in der JumpList.RemovedDestinations wirklich der Pfad den ich dan das Element geschrieben habe drin. Wenn das Tool beendet ist und ich entferne es danach und starte das Tool anschließend neu dann bekomme ich wieder null bei dem Element als Pfad!?

Again what learned...