• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi程序热键

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

要定义一个全局热键,通常有三个步骤:     
  1、定义Windows的消息WM_HOTKEY的HOOK链,即

             procedure MyShortCut(Var Message:TMessage);Message WM_HOTKEY;         
  2、向Windows加入一个全局原子hotkey:GlobalAddAtom(’hotkey’),   并保留其句柄          
  3、向Windows登记热键链:   RegisterHotKey   函数原形如下     
    BOOL RegisterHotKey(     
              HWND   hWnd,        //   连接热键的窗口句柄     
              int   id,            //   全局原子句柄    
              UINT   fsModifiers,       //   热键修饰标志     
              UINT   vk           //   虚拟键盘码

              );     
  这里,fsModifiers是指虚拟键盘码vk结合何种键一起生成WM_HOTKEY的消息,它是下列三值的组合:          
    MOD_ALT      //   ALT   键必须按下
    MOD_CONTROL   //   CTRL   键必须按下    
    MOD_SHIFT     //   SHIFT   键必须按下    
  有了这些准备,你就可以定义自己喜欢的方式了。

  下面是一个范例,当CTRL+Q在任何时候被按下时,都会打出“你好,Crtl+Q被按下”的信息。     
  

    type       

    TForm1   =   class(TForm)       

    procedure   FormCreate(Sender:   TObject);       

    procedure   FormDestroy(Sender:   TObject);       

    protected       

    procedure   myshortcut(var   message:   TMessage);   message WM_HOTKEY;       

    private       

            { Private-Deklarationen   }       

    public       

            { Public-Deklarationen   }       

  end;       

  var       

   Form1:   TForm1;       

   id:Integer;       

  implementation       

    {$R   *.DFM}       

  procedure   TForm1.myshortcut(var   message:   TMessage);       

  begin       

   ShowMessage(’你好,Crtl   +   Q   被按下’);       

  end;       

  procedure   TForm1.FormCreate(Sender: TObject);     

  begin       

    id:=GlobalAddAtom(’hotkey’);       

    RegisterHotKey(Handle,id,MOD_CONTROL,88);     // 88是Q的ASCII值   

  end;     

  退出时候取消热键定义:     

  procedure   TForm1.FormDestroy(Sender: TObject);       

  begin       

   UnRegisterHotKey(Handle,id);         

  end;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
用Delphi实现抓屏发布时间:2022-07-18
下一篇:
delphilinux信号量发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap