Einzelnen Beitrag anzeigen

Destroyer446

Registriert seit: 17. Jan 2011
67 Beiträge
 
#2

AW: Alle Systemweiten Eingaben abfragen

  Alt 23. Jun 2012, 20:52
*Hab doch noch ein Problem, und zwar habe ich einen Code womit ich Keyboard-Eingaben
Handle-Weit abfragen kann.
Wie kann ich das jetzt Systemweit machen?
DLL:
Delphi-Quellcode:
library KeyboardHook;

uses
  Windows, Messages, SysUtils, Dialogs;

var
  HookHandle: Cardinal = 0;
  WindowHandle: Cardinal = 0;
  PressedKey: Integer = 0;
  LastKey: Integer = 0;

function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM):
LRESULT; stdcall;
begin
//es ist ebenfalls möglich die Bearbeitung an eine Bedingung zu knüpfen
//it's possible to call CallNextHookEx conditional only.
  Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
  case nCode < 0 of
    TRUE: exit; //wenn code kleiner 0 wird nix gemacht
                //if code smaller 0 nothing has to be done
    FALSE:
      begin
        PressedKey := WPARAM;
        If LastKey = PressedKey then
        begin
          PressedKey := 0;
          LastKey := 0;
        end
        else
          LastKey := WPARAM;
//Hier kann jetzt alles bearbeitet werden
//Here one can work with the parameters
      end;
  end;
end;

function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
  Result := False;
  if HookHandle = 0 then begin
//Erstmal Hook installieren
//First install the hook
    HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHookProc,
    HInstance, 0);
//Uebergebenes Fensterhandle sichern
//Save the given window handle
    WindowHandle := Hwnd;
    Result := TRUE;
  end;
end;

function UninstallHook: Boolean; stdcall;
begin
//Hook aus der Hookchain entfernen
//Uninstall hook from hook chain
  Result := UnhookWindowsHookEx(HookHandle);
  HookHandle := 0;
end;

procedure GetPressedKey(var Res: Integer); stdcall;
begin
  Res := PressedKey;
  PressedKey := 0;
end;

exports
//Installations- und Deinstallationsroutine exportieren
//Export the installation and deinstallation routine
  InstallHook,
  UninstallHook,
  GetPressedKey;
end.
Mfg
  Mit Zitat antworten Zitat