模拟鼠标和模拟键盘

来源:互联网 发布:农村淘宝店装修风格 编辑:程序博客网 时间:2024/04/28 10:01

模拟鼠标

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);


0 0
原创粉丝点击