模擬滑鼠和模擬鍵盤
阿新 • • 發佈:2019-01-27
模擬滑鼠
void __fastcall TForm1::Button1Click(TObject *Sender) { HWND h,h1; TRect rc; int i,j; Sleep(500); h1=GetDesktopWindow(); h=GetForegroundWindow(); if(h1==h) { h=GetNextWindow(h1,GW_HWNDPREV); SetForegroundWindow(h); GetWindowRect(h,&rc); SetCursorPos(rc.right+20,rc.Bottom); SetCursorPos(j,rc.Top+20); Sleep(8); mouse_event(MOUSEEVENTF_LEFTDOWN,j,i+145,0,0); mouse_event(MOUSEEVENTF_LEFTUP,j,j,0,0); Sleep(8); } else { SetForegroundWindow(h); GetWindowRect(h,&rc); SetCursorPos(rc.Left+20,rc.Bottom); for(i=rc.Bottom;i<=(rc.Top+10);i++) { SetCursorPos(rc.Left+20,i); Memo1->Lines->Add(Format("%s (%d,%d)",ARRAYOFCONST(("mouse down",i,i)))); Sleep(3); } for(j=rc.left+20;j<=(rc.right-18);j++) { SetCursorPos(j,rc.Top+20); Memo1->Lines->Add(Format("%s (%d,%d)",ARRAYOFCONST(("mouse down",j,j)))); Sleep(3); } Sleep(8); mouse_event(MOUSEEVENTF_LEFTDOWN,j,i+145,0,0); mouse_event(MOUSEEVENTF_LEFTUP,j,j,0,0); Memo1->Lines->Add(Format("%s %d",ARRAYOFCONST((" =",j)))); Sleep(8); } }
模擬鍵盤
HWND hWnd; hWnd = GetFocus(); // 得到當前鍵盤游標所在的視窗 //CppWebBrowser1->Navigate(AnsiToUnicode(Edit1->Text.c_str())); Memo1->Lines->Add("--focus--"); if (hWnd == NULL) { hWnd = GetForegroundWindow(); // 得到當前視窗 if (hWnd == Form1->Handle) return; // 不需要程式本身的視窗 DWORD FormThreadID = GetCurrentThreadId(); WORD CWndThreadID = GetWindowThreadProcessId(hWnd, NULL); // 附加輸入執行緒 AttachThreadInput(CWndThreadID, FormThreadID, true); hWnd = GetFocus(); // 得到當前鍵盤游標所在的視窗 AttachThreadInput(CWndThreadID, FormThreadID, false); // 取消 Memo1->Lines->Add("--window--"); } if (hWnd == NULL) return; Memo1->Lines->Add("[done]"); PostMessage(hWnd, WM_CHAR, (WPARAM)('A'&0xFF), 0); PostMessage(hWnd, WM_CHAR, (WPARAM)('b'&0xFF), 0); PostMessage(hWnd, WM_CHAR, (WPARAM)('C'&0xFF), 0); PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0); // AnsiString Lines = IntToStr(nTimes);