当前位置:编程学习 > Delphi >>

delphi 程序内执行按键的问题

keybd_event(119,0,0,0); keybd_event(119,0,KEYEVENTF_KEYUP,0); 实现了按键 但是该按键是在所有窗体都可行。 我想在我这个程序内按F8 不管他最小化还是在最前。请问该怎么做?
答案:注册系统热键。
在Form的private段中声明如下:
  TForm1 = (TForm)
  private
    { Private declarations }
    HotKeyId: Integer;
    procedure wmHotkeyHandle(var Msg: TMessage); message WM_HotKey;
...

procedure TForm1.wmHotkeyHandle(var Msg: TMessage);
begin
  if (Msg.lparamhi = 119) then
  begin
    Msg.Result := 1;
    // todo: 这里执行你的代码
  end;
end;
//Form创建时注册热键
procedure TForm1.FormCreate(Sender: TObject);
begin
  {Register Hotkey}
  Hotkeyid := GlobalAddAtom(PChar('userdefinehotkey')) - $C000;
  RegisterHotKey(Handle, Hotkeyid, 0, 119);
end;
//Form释放时移除热键
procedure TForm1.FormDestroy(Sender: TObject);
begin
  {UnregisterHotkey}
  UnRegisterHotKey(Handle, Hotkeyid);
  DeleteAtom(Hotkeyid);
end;
就这样。

上一个:电脑编程 JSP myeclipse5.5
下一个:怎样用Delphi在程序中写“从excel工作表到指定单元表的路径”,每个单元表都是按年份命名的,请高手指点!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,