Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

SHChangeNotifyRegister Event

  Alt 10. Mai 2017, 18:04
Ich möchte das Image des Papierkorb ändern abhängig vom aktuellen Status ob er leer oder voll ist.
Bisher habe ich das innerhalb eines Timers geregelt was aber einiges an CPU-Last benötigt.

Jetzt erstelle ich dafür ein EVENT.
Delphi-Quellcode:
      nEvents := SHCNE_DELETE or SHCNE_RMDIR or SHCNE_UPDATEIMAGE;
      RegID := SHChangeNotifyRegister(MainHandle, SHCNRF_ShellLevel, nEvents, WM_APP, 1, ChangeInfo);

      // Nach dem beenden der Anwendung
      if RegID > 0 then
        SHChangeNotifyDeregister(RegID);
Delphi-Quellcode:
    WM_APP:
      begin
         if gP.recyclebin <> 0 then
         begin
           if SHGetRecycleBinCount > 0 then
Jetzt das eigentliche Problem..
Das Event wird nie abgefeuert egale ob ich den Papierkorb leere oder auffülle.

Was könnte das verursachen?
Es kann ja nicht sein das ich selber noch eine SendMessage schicken muss um den Status zu prüfen
Denn dann wäre da die frage welchen Sinn hat so ein Event.

gruss
  Mit Zitat antworten Zitat