Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Start eines Keyboard-Hooks aus einem Thread (https://www.delphipraxis.net/170258-start-eines-keyboard-hooks-aus-einem-thread.html)

hesch21 10. Sep 2012 14:34

AW: Start eines Keyboard-Hooks aus einem Thread
 
Das Programm, welches den Hook setzt, wird von einem Dienst über CreateProcessAsUser gestartet. Von da müssten die Rechte eigentlich genügen, zumal der Bildschirmschoner selbst im Normalfall unter dem angemeldeten Benutzer läuft. Mein Programm kann ich ja auf dem Screen-Saver-Desktop starten und das läuft dort problemlos, nur eben der Hook nicht. Eigentlich glaube ich kaum, dass der Hook nur gerade auf diesem Desktop andere Rechte für nicht mal alle Bildschirmschoner benötigt. Aber ich werde es trotzdem mal mit einem Starter-Programm und Elevation auf Administratoren-Rechte versuchen. Zum Glück gibt es ja hierfür die JEDI-API. Da ist bei den Examples ein fast fertiges Starterprogramm mit Elevation.

delphinub23 12. Sep 2012 12:56

AW: Start eines Keyboard-Hooks aus einem Thread
 
Zitat:

Das Programm, welches den Hook setzt, wird von einem Dienst über CreateProcessAsUser gestartet. Von da müssten die Rechte eigentlich genügen, zumal der Bildschirmschoner selbst im Normalfall unter dem angemeldeten Benutzer läuft. Mein Programm kann ich ja auf dem Screen-Saver-Desktop starten und das läuft dort problemlos, nur eben der Hook nicht. Eigentlich glaube ich kaum, dass der Hook nur gerade auf diesem Desktop andere Rechte für nicht mal alle Bildschirmschoner benötigt. Aber ich werde es trotzdem mal mit einem Starter-Programm und Elevation auf Administratoren-Rechte versuchen. Zum Glück gibt es ja hierfür die JEDI-API. Da ist bei den Examples ein fast fertiges Starterprogramm mit Elevation.
Konntest du es schon testen?

hesch21 12. Sep 2012 13:36

AW: Start eines Keyboard-Hooks aus einem Thread
 
Sorry, bin etwas unter Druck!
ja, ich hab's getestet, leider ohne Erfolg. Auch mit expliziten Admin-Rechten klappt's nicht immer. Und dann bin ich noch auf einen Screen-Blanker (allerdings nicht von Microsoft) gestossen, der knallt irgendwie gleich mal alles ab, was auf WinSta0\Screen-Saver läuft, sobald er sich selbst beendet. Ganz hässlich. Aber so langsam komme ich zum Schluss, dass ich wieder mal den Support von Microsoft bemühen und halt die 400 Dollar aufwerfen muss. Ich habe keine Ahnung mehr, wo suchen.

delphinub23 12. Sep 2012 14:41

AW: Start eines Keyboard-Hooks aus einem Thread
 
Zitat:

...Mein Programm kann ich ja auf dem Screen-Saver-Desktop starten und das läuft dort problemlos...
Du startest den Screen-Saver-Desktop aus der Anwendung direkt, also nicht aus dem Hook-Thread?
Wenn ja, musst du dann nicht dem Thread noch den entsprechenden (Screen-Saver-Desktop) zuweisen?

SetThreadDesktop()

Keine Ahnung, ob´s was bringt. Hab nur gerade was davon gelesen...
Könnte ja sein, dass der Thread den Hook auf einem gesicherten Desktop ohne die o.g. Zuweisung nicht anlegen kann.

hesch21 13. Sep 2012 08:14

AW: Start eines Keyboard-Hooks aus einem Thread
 
Mach ich ja! Schau Dir mal den zweiten Codeteil in meinem ersten Post an. Dort ist testeshalber einfach 'Default' drin, weil ich den Hook im Thread nicht zum laufen gebracht habe, aber jetzt habe ich das natürlich längst wieder auf 'Screen-Saver' geändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz