我想知道如何在我的 delphi 应用程序中获取键盘输入而不集中。我正在编程的应用程序将在我玩游戏时截取屏幕截图。
我已经编写了屏幕截图代码,但我错过了最后一块,任何建议都将不胜感激。
我想知道如何在我的 delphi 应用程序中获取键盘输入而不集中。我正在编程的应用程序将在我玩游戏时截取屏幕截图。
我已经编写了屏幕截图代码,但我错过了最后一块,任何建议都将不胜感激。
您可以注册一个热键(使用RegisterHotKey和UnregisterHotKey函数)并在WM_HOTKEY
按下键时使用消息进行拦截。
试试这个样本
type
TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
procedure WMHotKey(var Message: TMessage); message WM_HOTKEY;
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
{ TForm3 }
const
SaveScreeenHK=666;
procedure TForm3.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, SaveScreeenHK , MOD_CONTROL, VK_F10);
end;
procedure TForm3.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, SaveScreeenHK);
end;
procedure TForm3.WMHotKey(var Message: TMessage);
begin
//call your method here
end;
从那以后,我一直很忙,并创建了一个用于在 delphi 中获取击键的库。你可以在这里找到它:https ://github.com/Kobusvdwalt/DelphiKeylogger
它仍然需要文档,但基本上你只需调用 olgetletter 函数。