模拟鼠标和模拟键盘

模拟鼠标

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值