delphi - Delphi如何在不聚焦的情况下从键盘获取输入

标签 delphi screenshot

我想知道如何在我的delphi应用程序未聚焦时获取键盘输入。 我正在编程的应用程序将在我玩游戏时截取屏幕截图。

我已经编写了屏幕捕获代码,但我缺少最后一段,任何建议将不胜感激。

最佳答案

您可以注册一个热键(使用RegisterHotKeyUnregisterHotKey函数)并使用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/

相关文章:

delphi - Indy 10 + Delphi 客户端-服务器应用程序占用所有 CPU

c++ - 如何从 Delphi 调用 "_pascal calling convention"的 dll?

command-line - 截取音频流

java - 禁用Java应用程序中运行的屏幕捕获软件

Delphi:Indy - 如何获得错误的响应体?

delphi - Delphi XE5 Shell执行非英文字符

delphi - 对象的属性列表

android - 截图

asp.net - 使用 asp.net 2.0 从 url 创建缩略图

android - 为什么在外部存储中保存位图失败,即使位图已正确创建并且可以在 imageView 中显示?