今天改动一个工具时遇到一个有意思的问题,打开某个窗体时弹出一些不相关的窗体。须要用户自己去手动点击后才干继续。保证不了自己主动处理,如今解说决方案记录一下,例如以下

         主要使用windows提供的FindWindow和FindWindowEx,參考代码例如以下

         wchar_t szClassName[256]; //用于记录窗体标题
 StringCchPrintf(szClassName, 256, L"Client%02d - VMCalc", m_Index + 1);
  HWND hwndDlg = FindWindow(L"#32770", szClassName); //当中#32770通过Spy++查找相应窗体类名
 if (hwndDlg == NULL) return ;
  HWND hwndButton = FindWindowEx(hwndDlg, NULL, L"Button", L"我已COPY VMCALC(&P)"); //在父窗体中查找相应子窗体
 SetForegroundWindow(hwndDlg);
  SetActiveWindow(hwndDlg); //父窗体置为活动窗体
 SendMessage(hwndButton, BM_CLICK, 0, 0);//单击
  SetForegroundWindow(hwndDlg);
 SetActiveWindow(hwndDlg);//父窗体置为活动窗体


          使用这样的简单方式就可以解决模拟单击等类似问题。

posted on 2017-06-01 09:51  lxjshuju  阅读(161)  评论(0编辑  收藏  举报