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:
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;
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...
Delphi-Quellcode:
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.
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...