使用SendInput模拟键盘和鼠标动作

HDC hdc;
 HWND hWnd;
 TCHAR sz[] = L"大家好";

 // 查找记事本程序的窗口句柄
 hWnd = ::FindWindow(L"Notepad", NULL);

 // 如果记事本程序在运行,就向其客户区绘制文本

int nCount=0;
 while(::IsWindow(hWnd)&&nCount<=10)  // IsWindow函数用于判断一个窗口句柄是否有效
 {
  hdc = ::GetDC(hWnd);
  ::TextOut(hdc, 10, 10, sz, wcslen(sz));
  ::ReleaseDC(hWnd, NULL);
  ::Sleep(1000);

  /*INPUT minput[2];
  ZeroMemory( &minput, sizeof(INPUT)*2);
  minput[0].type=INPUT_MOUSE;
  minput[0].mi.dx=100;
  minput[0].mi.dy=100;
  minput[0].mi.mouseData=0;
  minput[0].mi.dwFlags=MOUSEEVENTF_RIGHTDOWN;

  minput[1].type=INPUT_MOUSE;
  minput[1].mi.dx=100;
  minput[1].mi.dy=100;
  minput[1].mi.mouseData=0;
  minput[1].mi.dwFlags=MOUSEEVENTF_RIGHTUP;

  UINT uRet=SendInput( 2, minput, sizeof(INPUT) );*/

  INPUT kbinput[5];
  ZeroMemory( &kbinput, sizeof(INPUT)*5 );

  kbinput[0].type = INPUT_KEYBOARD;
  kbinput[0].ki.wVk = 'Z';

  kbinput[1].type = INPUT_KEYBOARD;
  kbinput[1].ki.wVk = 'W';

  kbinput[2].type = INPUT_KEYBOARD;
  kbinput[2].ki.wVk = 'J';
  //kbinput[2].ki.dwFlags = KEYEVENTF_KEYUP;

  kbinput[3].type=INPUT_MOUSE;
  kbinput[3].mi.dx=100;
  kbinput[3].mi.dy=100;
  kbinput[3].mi.mouseData=0;
  kbinput[3].mi.dwFlags=MOUSEEVENTF_RIGHTDOWN;

  kbinput[4].type=INPUT_MOUSE;
  kbinput[4].mi.dx=100;
  kbinput[4].mi.dy=100;
  kbinput[4].mi.mouseData=0;
  kbinput[4].mi.dwFlags=MOUSEEVENTF_RIGHTUP;

  UINT uRet = SendInput( 5, kbinput, sizeof(INPUT) );

  cout<<uRet;
  if(uRet<=0)
  {
   DWORD dwErr=::GetLastError();
   cout<<dwErr;
  }

nCount++;

 }
 ::MessageBox(NULL, L"记事本程序已经退出", L"04UseDC", MB_OK);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉心编码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值