日期:2014-05-18 浏览次数:21199 次
[DllImport("user32")]
public static extern void keybd_event(
byte bVk,
byte bScan,
uint dwFlags,
uint dwExtraInfo
);//模拟键盘消息
byte VK_CONTROL=17;
byte VK_C=67;
//下面四句话就是CTRL+C
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_C, 0, 0, 0);
keybd_event(VK_C, 0, 0x2, 0);
keybd_event(VK_CONTROL, 0, 0x2, 0);
------解决方案--------------------
楼主表达能力有问题
你问的是“模拟Ctrl”,也就是发送击键,那么7楼已经给你解决了
但是听你表达,你好象是想“拦截Ctrl”,也就是如果按下Ctrl,收到一个通知,而不是主动去触发一个Ctrl键
哎。。。。
------解决方案--------------------
if (KeyDownEvent != null && (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN))
{
Keys keyData = (Keys)MyKeyboardHookStruct.vkCode;
KeyEventArgs e = new KeyEventArgs(keyData);
KeyDownEvent(this, e);
}
这段代码执行没有?如果执行了,直接从vkCode来判断Control是否按下
------解决方案--------------------
是不是被PreviewKeyDown吞掉了
------解决方案--------------------
是不是被PreviewKeyDown吞掉了