Thema: Delphi Nach Explorer absturz

Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#15

AW: Nach Explorer absturz

  Alt 15. Sep 2020, 14:40
Zitat:
Wenn man etwas hat, was sich dort rein hängt, dann muß man eben auch auf dessen Events reagieren.
Ich verwende nichts was sich dort reinhängt.

Habe es jetzt so geändert. Ob das elegant ist mag dahin gestellt sein.
Delphi-Quellcode:
procedure WinEventProc(hWinEventHook: THandle; event: DWORD; EHandle: HWND;
  idObject: Integer; idChild: Integer; idEventThread: DWord;
  dwmsEventTime: DWord); stdcall;
var
  Counter: Integer;
begin
 if (event = EVENT_OBJECT_DESTROY) and (EHandle = HwndTarget) and
   (idObject = OBJID_WINDOW) and (idChild = INDEXID_CONTAINER) then
   begin
     if (MainApp.FHNotifyRBin <> 0) then
     begin
       HwndTarget := 0;
       Counter := 0;
       if SHChangeNotifyDeregister(MainHandle) then
       begin
         MainApp.FHNotifyRBin := 0;

         repeat
           HwndTarget := FindWindow('Progman', 'Program Manager');
           WinProcessMessages;
           inc(Counter);
         until (HwndTarget <> 0) or (Counter = 30000);

         if HwndTarget <> 0 then
           MainApp.RegisterRecyleBin(MainHandle);
       end;
     end;
   end;
end;

Geändert von venice2 (15. Sep 2020 um 14:54 Uhr)
  Mit Zitat antworten Zitat