焦点が合っていないときに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;
それ以来、私は忙しく、デルファイでキーストロークを取得するためのライブラリを作成しました。ここで見つけることができます:https ://github.com/Kobusvdwalt/DelphiKeylogger
まだドキュメントが必要ですが、基本的にはolgetletter関数を呼び出すだけです。