[DllImport("user32")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);//注册热键
[DllImport("user32")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);//解除热键
[DllImport("user32")]
public static extern void keybd_event(
byte bVk,
byte bScan,
uint dwFlags,
uint dwExtraInfo
);//模拟键盘消息 byte VK_NUM1 = 97;
byte VK_NUM2 = 98;
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x0312: //这个是window消息定义的 注册的热键消息
if (m.WParam.ToString().Equals("888")) //这是我们注册的那個热键
{
keybd_event(VK_NUM1, 0, 0, 0);//表示1键按下
keybd_event(VK_NUM1, 0, 0x2, 0);//表示1键弹起
}
if (m.WParam.ToString().Equals("777")) //这是我们注册的那個热键
{
keybd_event(VK_NUM2, 0, 0, 0);//表示2键按下
keybd_event(VK_NUM2, 0, 0x2, 0);//表示2键弹起 }
break;
}
base.WndProc(ref m);
} private void button1_Click(object sender, EventArgs e)
{
RegisterHotKey(Handle,888,4,Keys.W);//注册按键,shift+w
RegisterHotKey(Handle, 777, 4, Keys.E);//shift+E
button1.Enabled = false;
MessageBox.Show("OK"); }以上是thc1987 提供的注册快捷健的按键方法
以上能实现按Shift+W输入“0”
以上能实现按Shift+E输入“1”但现在我有一个问题
如我注册了Shift + W的时候当用户按下Shift + w 的时候他会引发我的快捷键输入“1”的同时,还会输入Shift+W
也就是说在Shift + w的前或后加输入“1”
谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货