Nochmal hallo!
Also:
Ich hab die "TSHChangeNotify component by Elliott Shevin" [1] und möchte diese gerne auch benutzen, weil da genau das richtige Event (sprich: MkDir) drinne ist. Das Problem ist, dass ich die gerne in nem Dienst benutzen möchte (also in nem Standard Delphi Dienst TService) und da aber kein Owner, wie es die Komponente braucht, existiert.
Delphi-Quellcode:
OwnerWindowProc := (Owner as TWinControl).WindowProc;
(Owner as TWinControl).WindowProc := WndProc;
Und dann kommt auch noch das WindowHandle von dem Owner für SHChangeNotifyRegister dran:
Delphi-Quellcode:
NotifyHandle := SHChangeNotifyRegister(
(Owner as TWinControl).Handle,
SHCNF_ACCEPT_INTERRUPTS +
SHCNF_ACCEPT_NON_INTERRUPTS,
EventMask,
fMessageNo,
NotifyCount,
NotifyPtr);
Das hab ich in nem Dienst ja alles nich
Wenn ich die Komponente einfach auf diese Dienst-Pseudo-Form draufmache gibts nen invalid Typecast (beim WindowProc umbiegen), was ja auch irgendwie einleuchtet und wenn ich ne TForm (oder wie Olli vorgeschlagen hat mit CreateWindowEx) mache kann SHChangeNotifyRegister irgendwie nix registern (NotifyHandle bleibt 0).
Das Ganze funktioniert einwandfrei wenn ich ne normale
Win32-Anwendung mache. Aber es muss, wie gesagt, auch ohne das jemand angemeldet ist laufen und ich mag nicht wirklich so ein "Lass-meine-Anwendung-als-Dienst-laufen"-Programm benutzen...
Danke im voraus, Imp
Edit: P.S. Diese ShellControls-Beispiel Komponente funktioniert in nem Dienst aber die springt immer an und ich weiss nicht, wie ich rauskriegen soll, ob jetzt nen Verzeichnis angelegt worden ist oder nur irgendwas anderes passiert is.. GRRR
[1]
http://www.torry.net/quicksearchd.ph....3.0&Title=Yes