Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi globaler Tastatur API-Hook (https://www.delphipraxis.net/115443-globaler-tastatur-api-hook.html)

michi101200 12. Jun 2008 07:33


globaler Tastatur API-Hook
 
Hallo,

als erste will ich sagen dass ich kein Keylogger schreiben will.

Sinn an der ganzen Sache ist, wenn ich in einem Textfeld von irgendeinem Programm bin z.B. im Artikelnummer eines ERP-System und dann die Tasten Strg + Alt + S drücke, dass dann ein anderes Programm gestartet wird und als Parameter der Inhalt des Textfeldes steht (in dem Beispiel wäre es die Artikelnummer).

Als erstes habe ich eine DLL erzeugt mit dem globalen Hook. Als zweiten Schritt habe ich dann ein Dienst programmiert der automatisch gestartet wird und die DLL dann lädt.

Das ganze funktioniert 100% unter Windows XP aber dann habe ich das ganze unter Vista getestet und da kann ich nur den Dienst installieren und starten aber er macht garnichts.

Ich habe schon seit Tagen mich damit beschäftigt und komme einfach nicht weiter.

Wisst ihr warum dass unter XP klappt und unter Vista nicht?

PS.
Ich bin ja noch neu in diesem Forum deswegen wäre noch meine Frage nebenbei:
Da ich ja relativ einen langen Quelltext habe, soll ich den dann im Anhang anhängen oder kann ich den ruhig hier reinsetzten?

Danke schonmal im Voraus

Bernhard Geyer 12. Jun 2008 07:52

Re: globaler Tastatur API-Hook
 
Zitat:

Zitat von michi101200
Als erstes habe ich eine DLL erzeugt mit dem globalen Hook. Als zweiten Schritt habe ich dann ein Dienst programmiert der automatisch gestartet wird und die DLL dann lädt.

Das ganze funktioniert 100% unter Windows XP aber dann habe ich das ganze unter Vista getestet und da kann ich nur den Dienst installieren und starten aber er macht garnichts.

Ich habe schon seit Tagen mich damit beschäftigt und komme einfach nicht weiter.

Wisst ihr warum dass unter XP klappt und unter Vista nicht?

Ganz einfach. Bis XP haben Dienst bei aktivieren des Hakens "Interaktion mit Desktop" zugriff auf den Desktop (und damit die gestarteten Programme) des Users. Da dies ein sehr große potentielle Sicherheitslücke ist (Firewall per SendMesssage umkonfiguriet/deaktiviert und Icons in TNU übermalt) ist ab Vista generell ohne Registry-Hacks nicht möglich und sollte man dem Kunden auch nicht zumuten. Du wirst deine Lösung also wieder Dienste-Frei machen müssen.

michi101200 12. Jun 2008 07:53

Re: globaler Tastatur API-Hook
 
Danke.
Jetzt versteh das wenigstens.

Gibt es denn dann eine andere Lösung?

DP-Maintenance 12. Jun 2008 08:15

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja kein Beitrag zur Code-Library

alzaimar 12. Jun 2008 08:40

Re: globaler Tastatur API-Hook
 
Hat Bernhard doch gesagt: Ohne Dienst. Ich hab einfach eine kleine Applikation im Autostart, die meine Hook-DLL lädt und im Tray sitzt (dann kann man sie besser kontrollieren / abschießen/ konfigurieren).

michi101200 12. Jun 2008 08:57

Re: globaler Tastatur API-Hook
 
Hast du das auch unter Vista?

Hab grad etwas ähnliches versucht.
In meiner Applikation setzte ich Application.ShowMainForm auf False.

Dass klappt auch aber bei Vista kommt wieder die schöne UAC Meldung.
Wenn ich dass dann im Autostart lege, dann beim starten die Meldung dass das Programm geblockt wurde.

Ist das auch beim Tray Icon?

Ich probier das mal.

DANKE!!!

alzaimar 12. Jun 2008 09:02

Re: globaler Tastatur API-Hook
 
Nee, ich habs nicht unter Vista, aber grundsätzlich sollte das schon gehen. Aber die UAC nervt fatal, die hab ich bei mir ausgebaut (is natürlich keine Lösung...)

michi101200 12. Jun 2008 09:05

Re: globaler Tastatur API-Hook
 
Klaaaaapt!!!

Ich hab dass jetzt ohne Try Icon gemacht sondern ich hab nur in FormCreate Application.ShowMainForm := False; und danach lad ich die DLL

Das klappt auch unter Vista ohne irgendeine UAC Meldung. Die Meldung kamm noch da ich immernoch ein Manifest eingebaut hatte aber ich braucht das ja garnicht mehr.

Danke für eure Antworten :-D :-D :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.

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