| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2902 人关注过本帖
标题:[原创]如何註冊系統熱鍵
取消只看楼主 加入收藏
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
 问题点数:0 回复次数:0 
[原创]如何註冊系統熱鍵

[DllImport("user32")]
public static extern bool RegisterHotKey(IntPtr hWnd,int id,uint control,Keys vk );

註冊熱鍵的api

[DllImport("user32")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);

解除註冊

private void Form2_Load1(object sender, System.EventArgs e)
{
RegisterHotKey(this.Handle,888,2,Keys.A);
//handle:這個窗體的handle 888:這個熱鍵的標誌id 2:crtl鍵 A: a鍵
}

private void Form2_Load1(object sender, System.EventArgs e)
{
UnregisterHotKey(this.Handle,888);
//handle:這個窗體的handle 888:上面那個熱鍵的標誌id
}


protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x0312: //這個是window消息定義的 註冊的熱鍵消息
if(m.WParam.ToString().Equals("888")) //如果是我們註冊的那個熱鍵
MessageBox.Show("你按了ctrl+a");
break;
}
base.WndProc (ref m);
}


None = 0,
Alt = 1,
crtl= 2,
Shift = 4,
Windows = 8

這是熱鍵的定義 alt+crtl是3 直接相加就可以了




如果用sendmessagea這個api 就是

SendMessage(this.Handle,WM_SETHOTKEY,0x45a, 0)

//WM_SETHOTKEY 是 0x32
//0x45a 高字節是contrl鍵 低字節是a b c d 所以5a是z的ascii 4是alt 也就是alt+z


搜索更多相关主题的帖子: color 
2006-10-31 18:08
快速回复:[原创]如何註冊系統熱鍵
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved