我想实现按键交替:按a输出b,按b输出c,可是下面这个,按a输出c了,怎么解决?
private void HookOnGlobalKeyDown(object sender, HookEx.KeyExEventArgs e)
{
//更改键盘布局
switch (e.KeyData)
{ case Keys.A:
e.Handled = true;
SendKeyCommand(btnB);
break; case Keys.B:
// if (combinationVKButtonsMap.ContainsKey(VK_SPACE))
if ((e.Flags & 0x00000001) == 1)//这句什么意思?
e.Handled = true;
SendKeyCommand(btnC);
}
break;
}
SetButtonStatus(e, true);
}怎么才能判断是模拟的按键还是实际的按键?
听说模拟的按键和实际的按键的 scanCode 是不同的,可在c#中怎么用scanCode呢?
最后一个问题:如何在上面的case Keys.B中判断SendKeyCommand();的执行次数?
private void HookOnGlobalKeyDown(object sender, HookEx.KeyExEventArgs e)
{
//更改键盘布局
switch (e.KeyData)
{ case Keys.A:
e.Handled = true;
SendKeyCommand(btnB);
break; case Keys.B:
// if (combinationVKButtonsMap.ContainsKey(VK_SPACE))
if ((e.Flags & 0x00000001) == 1)//这句什么意思?
e.Handled = true;
SendKeyCommand(btnC);
}
break;
}
SetButtonStatus(e, true);
}怎么才能判断是模拟的按键还是实际的按键?
听说模拟的按键和实际的按键的 scanCode 是不同的,可在c#中怎么用scanCode呢?
最后一个问题:如何在上面的case Keys.B中判断SendKeyCommand();的执行次数?
解决方案 »
- wcf 异常
- 怎么使datagridview可见行填充整个datagridview
- 怎么查看仿真设备的IP地址
- 怎么在VS.NET2005 下把程序生成的EXE文件设置成能在framework1.1 下执行的呢!在线等
- 请问GridControl里怎么合并字段?谢谢大家
- 请问大家是如何利用UML图辅助开发系统的?
- xml数据源的确问题(将空节点删除)
- 一个关于做在线下载网站的难题,高手请进!
- 使用WebBrowser控件时,如果自动填充其中的文本框,然后自动提交?
- 在access数据库中用insert插入记录时如何处理“自动增长”字段?
- 谁有C#写的语音与视频的代码?高分相求!
- datagridview中,怎样才能让垂直滚动条不随滚轮移动
private void HookOnGlobalKeyDown(object sender, HookEx.KeyExEventArgs e)
{
//更改键盘布局
switch (e.KeyData)
{ case Keys.A:
e.Handled = true;
SendKeyCommand(btnB);
break; case Keys.B:
if (combinationVKButtonsMap.ContainsKey(VK_SPACE)) //判断是否组合键
if ((e.Flags & 0x00000001) == 1)//进行运算 去掉ctrl 假设是ctrl+B 运算之后是 B
e.Handled = true;
SendKeyCommand(btnC);
break;
}
}
SetButtonStatus(e, true);
}
此时Hook会捕捉到B,然后输出C所以你看到的是A->C