【发布时间】:2020-04-15 12:17:03
【问题描述】:
我正在尝试制作一个程序来模拟对窗口的LEFT 按键。
我正在使用这个:
PostMessage(hwnd, WM_KEYDOWN, new IntPtr(0x25), new IntPtr(0));
还有这个:
PostMessage(hwnd, WM_KEYUP, new IntPtr(0x25), new IntPtr(0));
但是这两行代码的结果和正常在窗口按LEFT的结果不一样...
正常按LEFT(WORKS):
P WM_KEYDOWN nVirtKey:VK_LEFT cRepeat:1 ScanCode:4B fExtended:1 fAltDown:0 fRepeat:0 fUp:0
P WM_KEYUP nVirtKey:VK_LEFT cRepeat:1 ScanCode:4B fExtended:1 fAltDown:0 fRepeat:1 fUp:1
PostMessageLEFT 按键(不起作用):
P WM_KEYDOWN nVirtKey:VK_LEFT cRepeat:0 ScanCode:00 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
P WM_KEYUP nVirtKey:VK_LEFT cRepeat:0 ScanCode:00 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
这是为什么呢?是不是因为cRepeat、ScanCode、fExtended、fRepeat 和fUp 不一样?如果是这样,我该如何正确设置它们?
【问题讨论】:
标签: c# winapi sendmessage hwnd