Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   registerHotKey funktioniert nicht (https://www.delphipraxis.net/161282-registerhotkey-funktioniert-nicht.html)

jaenicke 28. Jun 2011 20:51

AW: registerHotKey funktioniert nicht
 
Naja, wenn du einen Haltepunkt auf die erste Zeile der Hookprozedur setzt, wirst du dort vermutlich ankommen. Dass es nicht klappen kann, ist klar, denn wenn du einmal in die Dokumentation geschaut hättest, hättest du gesehen, dass die LowLevel-KeyboardProc anders aussieht:
http://msdn.microsoft.com/en-us/library/ms644985.aspx

Aber wie gesagt:
Du setzt in InstallHook Result immer auf True, egal ob das Setzen des Hooks erfolgreich war oder nicht.

dYnAm1c 28. Jun 2011 21:16

AW: registerHotKey funktioniert nicht
 
Das scheint einfach nicht mein Gebiet zu sein, also ich hab den LowLevelKeyboardProc und den KeyboardProc mal verglichen und bis auf wParam und lParam scheinen beide Funktionen gleich zu sein, es sei denn ich übersehe was, oh man, Hilfe ich komm nicht mehr klar xD

Delphi-Quellcode:
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
  if HookHandle = 0 then begin
    HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, @LowLevelKeyboardProc, HInstance, 0);
    WindowHandle := Hwnd;
  end;
end;
Der Code müsste jetzt so richtig sein?

Luckie 28. Jun 2011 21:33

AW: registerHotKey funktioniert nicht
 
Also wenn die Funktion immer False zurückgeben soll...

dYnAm1c 28. Jun 2011 21:49

AW: registerHotKey funktioniert nicht
 
Zitat:

Zitat von Luckie (Beitrag 1108711)
Also wenn die Funktion immer False zurückgeben soll...

Oh ja das hab ich übersehen, jetzt sollte es richtig sein.
Aber trotzdem weiß ich einfach nicht wie ich jetzt mit dem LowLevelKeyboardProc weitermachen soll.
Ich hab mir eigentlich fast alles relevantes zu SetWindowsHooxEx und LowLevelHook durchgelesen was ich in der MSDN gefunden habe, aber ich werde einfach nicht draus schlau wo bei mir der Fehler ist.

Luckie 28. Jun 2011 21:53

AW: registerHotKey funktioniert nicht
 
Jetzt gibt sie gar nichts zurück. Liest du eigentlich die Compiler Warnungen?

EWeiss 28. Jun 2011 21:59

AW: registerHotKey funktioniert nicht
 
wenn du schon Boolean; stdcall;
also rückgabe definierst dann prüfe auch darauf..

Result := "sollte dann einen wert True/False liefern.

gruss

dYnAm1c 28. Jun 2011 22:03

AW: registerHotKey funktioniert nicht
 
Zitat:

Zitat von Luckie (Beitrag 1108719)
Jetzt gibt sie gar nichts zurück. Liest du eigentlich die Compiler Warnungen?

Wenn ich ehrlich bin, nein ich habs die ganze Zeit übersehen, danke^^.
Auf diese Weise konnte ich zumindest schonmal einen kleinen anderen Fehler ausmerzen.
Ich bin leider im moment total überfordert und hab glaube ich keine Ahnung was ich gerade machen soll,
ob nun Result := True/False da hin muss oder doch was anderes was ich wie immer mal wieder übersehe.

EWeiss 28. Jun 2011 22:07

AW: registerHotKey funktioniert nicht
 
InstallHook liefert einen Boolean zurück so wie es deklariert ist.
also dann prüfe doch einfach auf das Ergebnis von HookHandle

Result := HookHandle <> 0;
anstelle von
WindowHandle := Hwnd;

Ist der wert mehr dann liefert diese Funktion ein true zurück andernfalls ein False.
So kannst du prüfen ob die Installation erfolgreich war.

gruss

Luckie 28. Jun 2011 22:08

AW: registerHotKey funktioniert nicht
 
Delphi-Quellcode:
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
  Result := False;
  if HookHandle = 0 then begin
    HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, @LowLevelKeyboardProc, HInstance, 0);
    WindowHandle := Hwnd;
    Result := HookHandle <> 0;
  end;
end;

dYnAm1c 28. Jun 2011 22:36

AW: registerHotKey funktioniert nicht
 
Jetzt habt ihr beide Unterschiedliche Codes gepostet, sind jetzt beide richtig?^^

Und trotzdem hat das ja noch nicht mein Problem gelöst das mein Hotkey immernoch nicht funktioniert, leider.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.
Seite 3 von 5     123 45      

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