• 7453阅读
  • 1回复

注册系统热键 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-07-30
— 本帖被 XChinux 执行加亮操作(2010-10-21) —
注册系统热键,既是象oicq的Ctrl+Alt+Z一样,不论程序激活未激活,
都将响应应用程序。

方法如下:
private:
  void __fastcall WMHotKey(TMessage &Msg);
public:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_HOTKEY,TMessage,WMHotKey);
END_MESSAGE_MAP(TForm);
实现:
void __fastcall TForm1::WMHotKey(TMessage &Msg)
{
switch(Msg.WParam)
  {
      case 0x1001:
          SetForegroundWindow(Handle);
          TrayIconCD->Restore();
          break;
      case 0x1002:
          mciSendString("Set cdaudio door closed wait",NULL,0,Handle);
          break;
      case 0x1003:
          mciSendString("Set cdaudio door open wait",NULL,0,Handle);
          break;
      default:;
  }    
}
另外,在构造函数中:
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  //Others Codes
if(RegisterHotKey(Handle,0x1001,MOD_CONTROL|MOD_ALT,'Z')==0)
  ShowMessage("Hotkey 'Ctrl+Alt+Z' Register failed");
if(RegisterHotKey(Handle,0x1002,MOD_CONTROL,VK_LEFT)==0)
  ShowMessage("Hotkey 'Ctrl+Left' Register failed");
if(RegisterHotKey(Handle,0x1003,MOD_CONTROL,VK_RIGHT)==0)
  ShowMessage("Hotkey 'Ctrl+Right' Register failed");
}

void __fastcall TForm1::Form1Close(...)
 
{  

  //Others Codes
  UnregisterHotKey(Handle,0x1001);
  UnregisterHotKey(Handle,0x1002);
  UnregisterHotKey(Handle,0x1003);
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线wczt_123
只看该作者 1楼 发表于: 2010-07-26
在linux下怎么做?
快速回复
限100 字节
 
上一个 下一个