Einzelnen Beitrag anzeigen

hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#1

Windows-Explorer beenden

  Alt 9. Mai 2012, 14:36
Hallo zusammen

bitte sagt nicht 'schon wieder'! Ich habe wirklich so ziemlich alle Beiträge gelesen, wie man einen Prozess beendet und schaffe dies auch mittels TerminateProcess. Nur: Das 'killt' den Prozess und ich muss den Explorer (in Windows 7) sauber beenden, so dass er seine Registry-Einträge (vor allem die TrayIcon-Einträge) zurück schreibt.
Das muss irgendwie gehen, gibt es doch eine versteckte Menüposition, die genau das macht: Mit der Windows-Taste das Startmenü öffnen, Ctrl-Shift drücken und mit der rechten Maustaste in den leeren Bereich des Menüs klicken. Es erscheint ein Menü mit 'Explorer beenden'. Vielleicht ein Tipp für diejenigen die das noch nicht wussten.

Ich habe nun irgendwo folgendes gefunden:

Zitat:
BOOL ExitExplorer()
{ HWND hWndTray = FindWindow(_T("Shell_TrayWnd"), NULL);
return PostMessage(hWndTray, 0x5B4, 0, 0); }
und dort wird behauptet, das würde funktionieren. Meine Umsetzung in Delphi
Code:
                 hd := FindWindow(nil, 'Shell_TrayWnd');
                  PostMessage(hd, $5b4, 0, 0);
führt aber nur dazu, dass ein zusätzliches Explorer-Fenster geöffnet wird.

PS: Das ganze geht darum, dass die liebe Microsoft gefunden hat, man dürfe programmtechnisch die TrayIcons in W7 nicht mehr im Tray fixieren. Das sei dem Bnutzer zu überlassen. Dämlich wenn man aber ein Alarmierungs-Tool hat, von dem ausser diesem Icon nichts sichtbar ist und bei einem Alarm lediglich durch eine Veränderung des Icons angezeigt werden kann/darf, dass der Alarm weitergeleitet wurde. Dann MUSS das Icon immer sichtbar sein. Wie man das entgegen den Normen von Microsoft Allmighty in der Registry umstellt, habe ich auch schon raus gefunden. Aber ich muss zuvor eventuelle Änderungen des Explorers zurück schreiben.

Jemand eine Idee wo bei meiner Umsetzung des obigen Codes der Fehler ist oder wie man das anders lösen könnte?
Heinz Schneider
  Mit Zitat antworten Zitat