• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wcg249165510
博客园    首页    新随笔    联系   管理    订阅  订阅

注册系统级热键

unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  keyid:integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //注册系统级热键
    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
   
  keyid:=globaladdatom(pchar('wcgkey'));
   registerhotkey(self.Handle,keyid,0,vk_f2);

end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  //响应
  if msg.HotKey=keyid then
  begin

     application.Restore;
     application.BringToFront;

  end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  //销毁系统级热键
  windows.UnregisterHotKey(self.Handle,keyid);
  windows.GlobalDeleteAtom(keyid);
end;

end.

posted @ 2009-02-05 13:35  Dannis wu  阅读(137)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3