AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?
Thema durchsuchen
Ansicht
Themen-Optionen

SetWindowsHookEx ... geht systemweit auch ohne DLL ... ?

Ein Thema von Daniel · begonnen am 7. Okt 2010 · letzter Beitrag vom 9. Okt 2010
Antwort Antwort
Seite 2 von 3     12 3      
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#11

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

  Alt 7. Okt 2010, 19:48
Nun stellt Euch vor, wie viel überflüssige Arbeit ich gehabt hätte, wenn ich zuvor die Doku gelesen hätte.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

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

  Alt 7. Okt 2010, 19:50
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#13

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

  Alt 7. Okt 2010, 19:57
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.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#14

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

  Alt 7. Okt 2010, 22:03
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

Geändert von brechi ( 7. Okt 2010 um 22:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

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

  Alt 7. Okt 2010, 22:32
Und wie ist dann das Windows SDK zu verstehen? Die entsprechende Stelle wurde ja schon zitiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#16

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

  Alt 8. Okt 2010, 06:02
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.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#17

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

  Alt 8. Okt 2010, 06:12
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#18

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

  Alt 8. Okt 2010, 08:43
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;
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#19

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

  Alt 8. Okt 2010, 08:48
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
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20

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

  Alt 8. Okt 2010, 09:02
Das heißt, die Dokumentation ist an diesem Punkt unvollständig bzw. ungenau?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr.
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