SendInput模拟键盘操作

来源:互联网 发布:php ios aes加密解密 编辑:程序博客网 时间:2024/04/30 09:33

#include <windows.h>int main(){HWND parentHwnd, childHwnd;INPUT input[4];parentHwnd = FindWindow(TEXT("Notepad"), NULL);if (parentHwnd){childHwnd = FindWindowEx(parentHwnd, NULL, TEXT("Edit"), NULL);if (childHwnd){for (int i = 0; i < 10; i++){SendMessage(childHwnd, WM_CHAR, 'A', 0);}SetForegroundWindow(parentHwnd);//CTRL+Smemset(input, 0, sizeof(input));input[0].type = input[1].type = input[2].type = input[3].type = INPUT_KEYBOARD;input[0].ki.wVk = input[2].ki.wVk = VK_CONTROL;input[1].ki.wVk = input[3].ki.wVk = 0x53;input[2].ki.dwFlags = input[3].ki.dwFlags = KEYEVENTF_KEYUP;SendInput(4, input, sizeof(INPUT));//ALT+F4memset(input, 0, sizeof(input));input[0].type = input[1].type = input[2].type = input[3].type = INPUT_KEYBOARD;input[0].ki.wVk = input[2].ki.wVk = VK_MENU;input[1].ki.wVk = input[3].ki.wVk = VK_F4;input[2].ki.dwFlags = input[3].ki.dwFlags = KEYEVENTF_KEYUP;SendInput(4, input, sizeof(INPUT));}}return 0;}/*发送字符串TCHAR *str = TEXT("Hello World");SendMessage(childHwnd, WM_SETTEXT, 0, (LPARAM)str);腾讯QQFindWindow(TEXT("TXGuiFoundation"), TEXT("N3verL4nd"));*//*POINT pt;char *str = "Hello World";while (1){Sleep(1000);GetCursorPos(&pt);//hwnd = WindowFromPoint(pt);hwnd = FindWindow(TEXT("Notepad"), NULL);SendMessage(hwnd, WM_CHAR, (WPARAM)'G', NULL);}*/
实现操作:向已经打开的记事本写入数据,保存(CTRL+S),关闭(ALT+F4)。

尝试用SendMessage发送组合键,没有得到解决办法。


如果我们获取QQ窗口的HWND,那么我们就可以自动发消息了。


int main(){HWND hwndTX, hwndConsole;INPUT input[4];hwndConsole = GetConsoleWindow();hwndTX = FindWindow(TEXT("TXGuiFoundation"), TEXT("N3verL4nd"));if (hwndTX != NULL){for (int i = 0; i < 10; i++){SendMessage(hwndTX, WM_CHAR, 'A', 0);}SetForegroundWindow(hwndTX);memset(input, 0, sizeof(input));input[0].type = input[1].type = input[2].type = input[3].type = INPUT_KEYBOARD;input[0].ki.wVk = input[2].ki.wVk = VK_MENU;input[1].ki.wVk = input[3].ki.wVk = 0x53;input[2].ki.dwFlags = input[3].ki.dwFlags = KEYEVENTF_KEYUP;SendInput(4, input, sizeof(INPUT));SetForegroundWindow(hwndConsole);}else{puts("not found");}return 0;}




0 0