![]() |
Auswirkung von CallNextHookEX
Ich erfasse die komplette Auswirkung von CallNextHookEx nicht, ich weiß zwar, dass diese Funktion die Message an die anderen Hooks weitergibt, aber mehr auch nicht...
Ich habe aus Spass einfach statt wparam bei einem Tastaturhook den Wert 13 eingegeben:
Delphi-Quellcode:
Allerdings wirkt sich dies überhaupt nicht auf meine Anwenung oder sonstiges aus. Desweiteren weiß ich noch immer nicht, warum meine sehr einfach gemachte Tastatursperre nciht funktioniert, hab mir auch viele Tutorials genauer angeschaut...
function Hook(ncode:integer;wparam:wparam;lparam:lparam):lresult; stdcall;
var help:integer; begin if ncode < 0 then begin result:=Callnexthookex(hook, ncode, 13, lparam); exit; end; result:=Callnexthookex(hook, ncode, 13, lparam); end;
Delphi-Quellcode:
Ich würde mich schon mit einer Begründung zufrieden geben, warum diese "Sperre" nciht klappt.(Man soll mit der Taste + sperren und entsperren können..Allerdings wollt ich klein anfangen und somit den Hook nur Lokal setzen) Ich möchte nur irgendwie mal bei den Hooks vorankommen, doch wenn ich schon bei so etwas scheitere, brauch ich mir über späteres keine Gedanken machen...
library Project2;
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; var hook:cardinal; switch:boolean; {$R *.res} function show(ncode:integer;wparam:wparam;lparam:lparam):lresult; stdcall; begin if ncode < 0 then begin result:=Callnexthookex(hook, ncode, wparam, lparam); exit; end; if (wparam=107) and ((lparam and KF_UP)=0) then switch:=not switch; if switch then result:=Callnexthookex(hook, ncode, wparam, lparam); end; function hookinstall(h:cardinal):boolean; stdcall; begin result:=false; hook:=0; switch:=true; hook:=setwindowshookex(WH_Keyboard,@show,hinstance, getcurrentthreadid); if hook <> 0 then result:=true; end; function hookuninstall:boolean;stdcall; begin result:=false; unhookwindowshookex(hook); result:=true; end; exports hookinstall, hookuninstall; begin end. |
Re: Auswirkung von CallNextHookEX
Die Auswirkungen müssen sich nicht unbedingt in deinem Programm zeigen, wenn ein solcher Hook global gesetzt wird. Abgesehen davon würde bei einem lokalen Hook vermutlich nie eine andere Hookfunktion aufgerufen, weil schließlich in den meisten Fällen ohnehin nur ein Hook für den aktuellen Prozeß gesetzt ist. Kannst du ja ganz einfach testen, indem du einen weiteren lokalen Hook setzt.
NB: Benutze nie Literale sondern immer Symbole. |
Re: Auswirkung von CallNextHookEX
Wie kann ich denn die Tastatureingabe manipulieren? Vllt. komm ich dann meiner billigen Tastensperre näher...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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 by Thomas Breitkreuz