Delphi hotkey frage
lima-city → Forum → Programmiersprachen → Delphi & Pascal
anweisung
beitrag
beschrieb
datei
exit
formen
fragen
gedrckte taste
info
keyboard
lsung
pack
page
parameter
prozedur
resource
schreiten
sender
tasten
tutorial
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
danke fuer die antwort..:P
also ich hab exact dass gemacht was du gesagt hast (oder nicht?) doch da kommt keine mesagge..
http://img530.imageshack.us/img530/2717/screenzm1.jpg
edit: also, ich habs mal an einem neuen projekt versucht und da hat es geklappt.
Doch das problem jetzt ist. Es sollte auch funktionieren wenn man im Spiel ist.
Beitrag geändert: 19.7.2007 3:32:20 von crackcheck -
Dein "Problem" ist, dass du willst, dass es auch funktioniert, wenn deine Anwendung nicht aktiv ist. Das nennt sich dann Tastatur-Hook.
Such einfach mal auf bekannten Delphiseiten nach keyboard hook, da werden sie geholfen ...
-
Ok thx.
Ich hab jetzt mal nach einem tut gesucht und auch was gefunden:
http://www.dsdt.info/tutorials/hooks/?page=6
Ich hab die .dll gemacht hab aber noch 3 fragen dazu.
1. Frage, da wird dauernd von diesem tastatur hook geredet doch nie von welcher taste sie sprechen.
2. Wie kann ich die dll einbinden? "HookDLL BINRES "Hooks.DLL"" geht nicht.
3. fuer was soll ich dass machen? "{$R main.res}" ? -
0) Also: ich finde diese Lösung "überdimensioniert".
1)Du hast die DLL wie hier erstellt:
http://www.dsdt.info/tutorials/hooks/?page=4
Und jetzt schau hier weiter:
function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; begin Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); case nCode < 0 of TRUE: exit; //wenn code kleiner 0 wird nix gemacht //if code smaller 0 nothing has to be done FALSE: begin // HIER BEOBACHTEST DU NUN DIE PARAMETER // wParam und lParam, mit denen ja diese Funktion von Windows aufgerufen wird. // In der Hilfe zum WindowsSDK von Microsoft müßtest du da zusätzliche Infos finden. Je nachdem, welche Taste du drückst, wird ein einem der Paramter (oder im High- oder Low-Byte eines der Paramter) der Tastatur-Scancode (oder Virtual Key Code) übergeben. Daher weißt du, welche Taste gedrückt wurde!! end; end; end;
2) Das kannst du dir sparen, wenn du die DLL nicht einbinden willst als Resource. D.h. du hast nicht die EXE-Datei und dazu die DLL-Datei, sondern die DLL-Datei wird "an die EXE angehängt". Das Listing auf der von dir geposteten Seite macht erstmal nichts anderes, als dass es die DLL aus der EXE-Datei wieder rauskramt, und als Datei zum Ausführen und Laden in eine Datei schreibt. Den Schritt kannst du dir also beruhigt sparen. (Das verheimlicht mehr oder weniger nur, dass du mit einem Hook arbeitest)
Die DLL lädst du entweder dynamisch (bevorzuge ich) oder statisch in deinem Programm (EXE), wie es hier beschrieben ist:
http://www.dsdt.info/tutorials/hooks/?page=5
3) wie 2)!
Beitrag geändert: 19.7.2007 13:10:54 von burgi -
Wo gibts ne kommplette Tabelle mit den Tastencodes ich hab in der Delphihilfe keine gefunden.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage