我想知道如何在我的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 - Delphi如何在不聚焦的情况下从键盘获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686135/