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 Auswirkung von CallNextHookEX (https://www.delphipraxis.net/105181-auswirkung-von-callnexthookex.html)

Wotan89 17. Dez 2007 16:52


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:
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...

Olli 19. Dez 2007 09:32

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.

Wotan89 19. Dez 2007 12:57

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 12:58 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