5

焦点が合っていないときにdelphiアプリケーションでキーボード入力を取得する方法を知りたいです。私がプログラミングしているアプリケーションは、ゲーム中にスクリーンショットを撮る予定です。

スクリーンキャプチャコードを作成しましたが、この最後の部分が欠落しています。アドバイスをいただければ幸いです。

4

2 に答える 2

6

ホットキーを登録し(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;
于 2012-12-03T15:23:19.517 に答える
1

それ以来、私は忙しく、デルファイでキーストロークを取得するためのライブラリを作成しました。ここで見つけることができます:https ://github.com/Kobusvdwalt/DelphiKeylogger

まだドキュメントが必要ですが、基本的にはolgetletter関数を呼び出すだけです。

于 2013-02-17T11:07:38.863 に答える