Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
Delphi 10 Seattle Enterprise
|
Fenster eindeutig wiedererkennen
17. Sep 2007, 15:10
Ich hab ein kleines Programm geschrieben, mit welchem ich die Buttons der Windows Taskleiste nach meinen Wünschen sortieren kann. (Mehr oder weniger, je nachdem ob "Ähnliche Elemente gruppieren" eingeschaltet ist oder nicht).
Der Benutzer kann hierzu eine Sortierung vorgeben, z.B.:
1. Outlook
1.1 Posteingang
1.2 Andere Fenster von Outlook
2. Our ERP
2.1 Lagerbewegungen
2.2 Finanzen
2.3 BuHa
2.4 Andere Fenster von Our ERP
Diese Sortierung wird natürlich gespeichert. Sobald die effektive Reihenfolge von der Vorgegebenen abweicht, werden die Buttons neu gesetzt. Das ganze funktioniert soweit ganz gut, nur gibt es ein kleines Problem: Wie erkenne ich Fenster mit gleichen Prozessnamen wieder? Ich mach mal ein Beispiel:
Running Tasks:
- Our ERP
-- Finanzen
-- Lager
- Our ERP
-- BuHa
-- Lager
Also, das ist jetzt kein Tippfehler. Wenn ich "Ähnliche Elemente gruppieren" ausgeschaltet habe, ist alles kein Problem, dann kann ich die Fenster so sortieren wie ich will. Aber wenn sie gruppiert werden, dann KANN ich die Fenster (mit -- in der Liste) nur innerhalb der Prozesse (mit - in der Liste) verschieben, die Prozesse kann ich aber frei verschieben. D.h. ich kann in diesem Beispiel nur "Finanzen" mit "Lager" tauschen, oder "BuHa" mit "Lager".
Jetzt habe ich 2 Problemchen:
1) Wie weis ich welches "Lager" nun welches ist?
2) Wie weis ich welches "Our ERP" nun welches ist?
Weder Fensternamen noch Prozessnamen sind unique. Auf Fensterhandle und ProzessID kann ich nur während der selben Arbeitssitzung zurückgreifen. Beim Neustart sind diese anders. Wie kann ich nun die Prozesse und/oder Fenster eindeutig auch nach einem Neustart wiedererkennen? Vielleicht gibt es eine Art ApplicationID von der ich noch nichts weiss?
Danke für alle Tipps schonmal!
|