Hallo,
ich hab mir paar Tutorials durchgelesen und hab für die
DLL (keyboardhook.dll) folgenden Quelltext:
Delphi-Quellcode:
library KeyboardHook;
uses
Windows,
Messages;
var
HookHandle: Cardinal = 0;
WindowHandle: Cardinal = 0;
function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
case nCode < 0 of
TRUE: exit;
FALSE:
begin
end;
end;
end;
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
Result := False;
if HookHandle = 0 then begin
HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc, HInstance, 0);
WindowHandle := Hwnd;
Result := TRUE;
end;
end;
function UninstallHook: Boolean; stdcall;
begin
Result := UnhookWindowsHookEx(HookHandle);
HookHandle := 0;
end;
exports
InstallHook,
UninstallHook;
end.
Und für mein Projekt wollte ich erstmal nur testen ob es auf einen Tastendruck reagiert.
Hier der Quelltext:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TInstallHook =
function(Hwnd: THandle): Boolean;
stdcall;
TUninstallHook =
function: Boolean;
stdcall;
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
InstallHook: TInstallHook;
UninstallHook: TUninstallHook;
lib: Cardinal;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
lib := LoadLibrary('
keyboardhook.dll');
if lib <> INVALID_HANDLE_VALUE
then
begin
InstallHook := GetProcAddress(lib, '
InstallHook');
end;
// else ERROR
end;
procedure HookProc(
var Result: WParam);
begin
if Result = $10000
then
RenameFile('
C:\MyWorks','
C:\MyWorker');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnInstallHook := GetProcAddress(lib, '
UninstallHook');
end;
end.
$10000 ist ja eigentlich Die Pfeiltaste nach unten und RenameFile war halt nur als Test gedacht.
Was hab ich falsch gemacht? Ich kann alles starten, aber das Prog. tut halt nix
Kann mir jemand helfen, bitte so dass ich es versteh, bin noch ziehmlicher Anfänger auf dem Gebiet.
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]