我正在尝试以编程方式使外部WinForms应用程序将其数据复制到剪贴板,这让我发疯。
由于在应用程序中按Ctrl-C做了正确的事情,我一直在尝试使用我的C#应用程序将ctrl-c发送到另一个应用程序。
这是我的命令序列。我使用Spy ++比较了这些消息,除了我的SendMessages显示为发送和接收之外,它匹配,而WinForm上显示的相同操作显示为已发布。
我的代码:
NativeMethods.SendMessage(hwnd, WM_KEYDOWN, 0x00000011, 0x001D0001);
NativeMethods.SendMessage(hwnd, WM_KEYDOWN, 0x00000043, 0x002E0001);
NativeMethods.SendMessage(hwnd, WM_CHAR, 0x00000003, 0x002E0001);
NativeMethods.SendMessage(hwnd, WM_KEYUP, 0x00000043, 0xC02E0001);
NativeMethods.SendMessage(hwnd, WM_KEYUP, 0x00000011, 0xC01D0001);
间谍++自动运行 - >
0059043C P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:322 yPos:54 [wParam:00000001 lParam:00360142] 0059043C P WM_LBUTTONUP fwKeys:0000 xPos:322 yPos:54 [wParam:00000000 lParam:00360142] 0059043C P WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000011 lParam:001D0001] 0059043C P WM_KEYDOWN nVirtKey:'C' cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000043 lParam:002E0001] 0059043C P WM_CHAR chCharCode:'3' (3) cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000003 lParam:002E0001] 0059043C P WM_KEYUP nVirtKey:'C' cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:1 fUp:1 [wParam:00000043 lParam:C02E0001] 0059043C P WM_KEYUP nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:1 fUp:1 [wParam:00000011 lParam:C01D0001]
My Spy ++序列:
0059043C S WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:299 yPos:52 [wParam:00000001 lParam:0034012B] 0059043C R WM_LBUTTONDOWN 0059043C S WM_LBUTTONUP fwKeys:MK_LBUTTON xPos:299 yPos:52 [wParam:00000001 lParam:0034012B] 0059043C R WM_LBUTTONUP 0059043C S WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000011 lParam:001D0001] 0059043C R WM_KEYDOWN 0059043C S WM_KEYDOWN nVirtKey:'C' cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000043 lParam:002E0001] 0059043C R WM_KEYDOWN 0059043C S WM_CHAR chCharCode:'3' (3) cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000003 lParam:002E0001] 0059043C R WM_CHAR 0059043C S WM_KEYUP nVirtKey:'C' cRepeat:1 ScanCode:2E fExtended:0 fAltDown:0 fRepeat:1 fUp:1 [wParam:00000043 lParam:C02E0001] 0059043C R WM_KEYUP 0059043C S WM_KEYUP nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:1 fUp:1 [wParam:00000011 lParam:C01D0001] 0059043C R WM_KEYUP