首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如果模拟键盘按上ALT + 字符键(如ALT + D )

2012-09-03 
如果模拟键盘按下ALT + 字符键(如ALT + D )用了这个方法,PostMessage(CBHwnd,WM_KEYDOWN, VK_LMENU + VK_D

如果模拟键盘按下ALT + 字符键(如ALT + D )
用了这个方法,PostMessage(CBHwnd,WM_KEYDOWN, VK_LMENU + VK_D, 0)
一直调试不通过,也就是没有起到作用。

不能用keybd_event,因为可能发送的消息窗体不是当前活动的窗体。谢谢

[解决办法]
KeybdEventEx(18,0,0,0);
KeybdEventEx(ord('D'),0,0,0);
sleep(10);
KeybdEventEx(ord('D'),,0,KEYEVENTF_KEYUP,0);
KeybdEventEx(18,0,KEYEVENTF_KEYUP,0);
[解决办法]
你直接用delphi提供的IntToHex就好,我那个是在这个基础上改的,改了个高位补0的动作,有时候要补0有时补F或其他,这里补0就好了。。。
[解决办法]

Delphi(Pascal) code
SendMessage(hwnd, 0x0104, 0x11, 0x20380001);SendMessage(hwnd, 0x0104, (int)'D', 0x20210001);SendMessage(hwnd, 0x0106, (int)'D', 0x20210001); SendMessage(hwnd, 0x0105, 0x11,0xC0380001);
[解决办法]
那样你可以考虑下进程快照,判断窗口是否存在可以枚举进程,找不到这个进程就做其它的事情,找到了findmainwindow,发消息激活,然后keybdevent
不知道你说的是不是这个意思……

热点排行