Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi [KeyHook] Event Global ändern (https://www.delphipraxis.net/65366-%5Bkeyhook%5D-event-global-aendern.html)

glkgereon 15. Mär 2006 18:34


[KeyHook] Event Global ändern
 
Hi,

Ich habe es nun glorreich :stupid: geschafft mir einen "mitlesenden KeyHook" zu schreiben.
das ganze basiert auf einem Code den ich (glaube ich) von Flocke habe...
Delphi-Quellcode:
function LLKeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  if nCode = HC_ACTION then
    with PKbDllHookStruct(lParam)^ do
      if Assigned(FConfig.OnHook) then FConfig.OnHook(Format('%4.4x %2.2x %2.2x %2.2x %10d', [wParam, vkCode, scanCode, flags, time]));
  Result := CallNextHookEx(FCOnfig.Handle, nCode, wParam, lParam);
end;

procedure TMyKeyHook.Install;
begin
  HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, LLKeyboardHookProc, hInstance, 0);
  if HookHandle = 0 then RaiseLastOSError;
end;

procedure TMyKeyHook.UnInstall;
begin
  if HookHandle <> 0 then begin
    UnhookWindowsHookEx(HookHandle);
    HookHandle := 0;
  end;
end;
Nun möchte ich aber nicht nur mitlesen sondern auch den Tastendruck der reinkommt ändern.
geht das irgendwie?
muss ich dafür einfach nur lParam verändert an CallNextHookEx übergeben?

Olli 14. Mai 2006 13:41

Re: [KeyHook] Event Global ändern
 
Zitat:

Zitat von glkgereon
muss ich dafür einfach nur lParam verändert an CallNextHookEx übergeben?

lParam kannst du nicht ändern (wird ja konstant übergeben), aber du kannst die Struktur auf die lParam zeigt tatsächlich ändern um dein Ziel zu erreichen.

Sollte man aber mit einer großen Portion Vorsicht garnieren ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 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