![]() |
AW: registerHotKey funktioniert nicht
Ich hatte doch geschrieben wo das Problem liegt. Deine Hookprozedur ist falsch. Der Tastaturcode wird dort gar nicht direkt übergeben...
Zitat:
|
AW: registerHotKey funktioniert nicht
Also ich habe jetzt zumindest einen Teilerfolg,
im moment sieht es so aus, dass egal welche Taste ich drücke, der Button gedrückt wird. Aber das klappt jetzt zumindest schonmal Systemweit, was z.B. mit registerHotKey ja gar nicht im Spiel funktioniert hat. Jetzt sieht der Code so aus:
Delphi-Quellcode:
function LowLevelKeyboardProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); case nCode < 0 of True: exit; False: if (PostMessage(wParam, WM_KEYDOWN, VK_NUMPAD7, 0)) then Form1.Button1.Click; end; end; |
AW: registerHotKey funktioniert nicht
Zitat:
Sorry, aber überlegst du eigentlich was du da tust? Aber wenn du offenbar nicht in die Dokumentation schauen willst, wird das natürlich nichts... :roll: Dabei ist es so einfach:
Delphi-Quellcode:
type
tagKBDLLHOOKSTRUCT = record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: DWORD; end; TKbdDLLHookStruct = tagKBDLLHOOKSTRUCT; PKbdDLLHookStruct = ^TKbdDLLHookStruct; ... function KeyboardHookProc(nCode: Integer; wParam: wParam; lParam: lParam): LRESULT; stdcall; begin if (nCode >= 0) and (wParam = WM_KEYDOWN) and (PKbdDLLHookStruct(lParam)^.vkCode = VK_NUMPAD7) then ShowMessage('Test'); Result := CallNextHookEx(HookHandle, nCode, wParam, lParam); end; |
AW: registerHotKey funktioniert nicht
Zitat:
Ich hätte da noch eine Frage, was genau tut dieser Abschnitt?
Delphi-Quellcode:
Das "^" Zeichen hab ich in Delphi so noch nie gesehen?TKbdDLLHookStruct = tagKBDLLHOOKSTRUCT; PKbdDLLHookStruct = ^TKbdDLLHookStruct; |
AW: registerHotKey funktioniert nicht
Zitat:
![]() Wenn du die nicht verstanden hast, hättest du das ja schreiben können. So konnte ich ja nicht wissen, dass du damit nicht klar kommst. Nur vermuten... Zitat:
Diese Deklaration ist so üblich: tagKBDLLHOOKSTRUCT ist der Originalname aus der API, TKbdDLLHookStruct der Name mit Delphischreibweise und PKbdDLLHookStruct der Pointer darauf. |
AW: registerHotKey funktioniert nicht
Vielen Dank und endlich klappt alles!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 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