Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SetWindowsHookEx ... geht systemweit auch ohne DLL ... ? (https://www.delphipraxis.net/155084-setwindowshookex-geht-systemweit-auch-ohne-dll.html)

Daniel 7. Okt 2010 18:48

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Nun stellt Euch vor, wie viel überflüssige Arbeit ich gehabt hätte, wenn ich zuvor die Doku gelesen hätte. :mrgreen:

Sir Rufo 7. Okt 2010 18:50

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Das ist wie mit der Hummel und dem fliegen.

Würde die sich einen Kopf um Aerodynamik machen, käme die nicht einen Millimeter in die Höhe.
Aber so ... sie fliegt einfach allen aerodynamischen Regeln zum Trotz.

rollstuhlfahrer 7. Okt 2010 18:57

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
also mich hat das schon immer gestört, dass man eine DLL nehmen muss. Wenn das auch ohne geht, spart man sich viel Entwicklungsaufwand, da eine EXE wesentlich einfacher zu debuggen ist als eine DLL.

Bernhard

PS: Dann braucht auch keiner mehr den dazugehörigen Feature Request zu schreiben.

brechi 7. Okt 2010 21:03

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Es ging schon immer ohne DLL mit _LL nur gabs das nicht unter Win98 wenn ich mich net irre.
http://forum.madshi.net/viewtopic.ph...d1a7145923104f
von 2007 für Keyboard_LL

Luckie 7. Okt 2010 21:32

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Und wie ist dann das Windows SDK zu verstehen? Die entsprechende Stelle wurde ja schon zitiert.

Zacherl 8. Okt 2010 05:02

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Also ich kann bestätigen, dass ein globaler Tastaturhook mit SetWindowsHookEx() auch ohne DLL funktioniert. Hatte vor ewigen Zeiten schonmal ein Beispiel für einen einfachen Keylogger gesehen, der diese Methode verwendete.

Das MSDN Zitat bezieht sich nicht zufällig auf API Hooks oder dergleichen? Das würde die Sache ja erklären.

jaenicke 8. Okt 2010 05:12

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Es gibt verschiedene Arten von Hooks und dementsprechend verschiedene Stellen, an denen diese installiert werden. Deshalb funktionieren manche auch außerhalb einer DLL. Das sind genau die, deren aufzurufender Code aufgrund ihrer Funktionsweise einfach gesagt nicht von überall aus dem System erreichbar sein muss.

Dazu gehören die Hooks für das Abfangen von Tastatureingaben und der Maus, da diese über den Desktop Window Manager abgehandelt werden können. Andere Hooks müssen aber in den Speicherbereich anderer Prozesse eingeblendet werden und das geht nur mit Code, der in einer DLL liegt.

Deshalb gilt diese Restriktion nicht für alle Hooks. Es kann aber durchaus sein, dass sich dies in späteren Windowsversionen ändert, wenn das Handling geändert wird.

mleyen 8. Okt 2010 07:43

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
hook.pas D3+ bzw. hier

Welche Hooks gehen so denn nicht?
Ich dachte bisher immer der Trick liegt an der ASM-Prozedur:
Delphi-Quellcode:
function StdHookProc(Code, WParam: WPARAM; LParam: LPARAM): LResult; stdcall; assembler;
asm
  XOR    EAX,EAX
  PUSH   EAX
  PUSH   LParam
  PUSH   WParam
  PUSH   Code
  MOV    EDX,ESP
  MOV    EAX,[ECX].Longint[4]
  CALL   [ECX].Pointer
  ADD    ESP,12 
  POP    EAX
end;

toms 8. Okt 2010 07:48

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Zitat:

Zitat von mleyen (Beitrag 1054427)
Welche Hooks gehen so denn nicht?

Diese drei Hooks müsen sich nicht in einer dll befinden, all anderen Hooks schon (IIRC)
  • WH_MOUSE_LL
  • WH_KEYBOARD_LL
  • WH_JOURNAL
RECORD

Luckie 8. Okt 2010 08:02

AW: SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
 
Das heißt, die Dokumentation ist an diesem Punkt unvollständig bzw. ungenau?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Seite 2 von 3     12 3      

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