- 控件ID可以在程序中查找或者自己根据ID类型定义更
- 源代码可在此处下载 http://download.youkuaiyun.com/download/zggzgw/10185335
- 毕竟查资料把积分花光了,所以收了点积分为下次查资料使用
- 界面如图所示
-
// HTMLContrl.h : PROJECT_NAME 应用程序的主头文件 // #pragma once #ifndef __AFXWIN_H__ #error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件" #endif #include "resource.h" // 主符号 // CHTMLContrlApp: // 有关此类的实现,请参阅 HTMLContrl.cpp // class CHTMLContrlApp : public CWinApp { public: CHTMLContrlApp(); // 重写 public: virtual BOOL InitInstance(); // 实现 DECLARE_MESSAGE_MAP() }; extern CHTMLContrlApp theApp;
-
// HTMLContrlDlg.h : 头文件 // #pragma once #include "afxwin.h" #define WM_MYUPDATEDATA WM_USER+100 //自定义刷新函数消息 #define WIDTH 406 #define HEIGHT 368 #define OFFSET_Y 375 //Y方向的偏移 // CHTMLContrlDlg 对话框 class CHTMLContrlDlg : public CDHtmlDialog { // 构造 public: CHTMLContrlDlg(CWnd* pParent = NULL); // 标准构造函数 // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_HTMLCONTRL_DIALOG, IDH = IDR_HTML_HTMLCONTRL_DIALOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 HRESULT OnButtonOK(IHTMLElement *pElement); HRESULT OnButtonCancel(IHTMLElement *pElement); LRESULT OnUpdateMyData(WPARAM Wparam, LPARAM lParam); // 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() DECLARE_DHTML_EVENT_MAP() public: volatile CWinThread* _winThread; volatile CWinThread* _winThread1; volatile CWinThread* _winThread2; volatile CWinThread* _winThread3; volatile CWinThread* _winThread4; volatile CWinThread* _winThread5; volatile CWinThread* _winThread6; volatile CWinThread* _winThread7; volatile CWinThread* _winThread8; public: BOOL FindWindowsHwnd(); afx_msg void OnBnClickedButtonOpen(); struct _HWNDLES { HWND hwndChild; //主窗口下,类为Internet Explorer的句柄 HWND explorerHwnd; //主窗口的句柄 }; _HWNDLES _handles[8]; CString _testNumber; CComboBox _cbTestNumber; CComboBox _cbTestSize; CString _testSize; afx_msg void OnSelchangeTestnumber(); afx_msg void OnSelchangeTestsize(); afx_msg void OnMove(int x, int y); afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point); afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnDestroy(); afx_msg void OnBnClickedButtonAll(); CString _sequentialRead1; CString _sequentialWrite1; CString _randomRead512KB1; CString _randomWrite512KB1; CString _randomRead4KB1; CString _randomWrite4KB1; CString _randomRead4KB32QD1; CString _randomWrite4KB32QD1; CString _sequentialRead2; CString _sequentialWrite2; CString _randomRead512KB2; CString _randomWrite512KB2; CString _randomRead4KB2; CString _randomWrite4KB2; CString _randomRead4KB32QD2; CString _randomWrite4KB32QD2; CString _sequentialRead3; CString _sequentialWrite3; CString _randomRead512KB3; CString _randomWrite512KB3; CString _randomRead4KB3; CString _randomWrite4KB3; CString _randomRead4KB32QD3; CString _randomWrite4KB32QD3; CString _sequentialRead4; CString _sequentialWrite4; CString _randomRead512KB4; CString _randomWrite512KB4; CString _randomRead4KB4; CString _randomWrite4KB4; CString _randomRead4KB32QD4; CString _randomWrite4KB32QD4; CString _sequentialRead5; CString _sequentialWrite5; CString _randomRead512KB5; CString _randomWrite512KB5; CString _randomRead4KB5; CString _randomWrite4KB5; CString _randomRead4KB32QD5; CString _randomWrite4KB32QD5; CString _sequentialRead6; CString _sequentialWrite6; CString _randomRead512KB6; CString _randomWrite512KB6; CString _randomRead4KB6; CString _randomWrite4KB6; CString _randomRead4KB32QD6; CString _randomWrite4KB32QD6; CString _sequentialRead7; CString _sequentialWrite7; CString _randomRead512KB7; CString _randomWrite512KB7; CString _randomRead4KB7; CString _randomWrite4KB7; CString _randomRead4KB32QD7; CString _randomWrite4KB32QD7; CString _sequentialRead8; CString _sequentialWrite8; CString _randomRead512KB8; CString _randomWrite512KB8; CString _randomRead4KB8; CString _randomWrite4KB8; CString _randomRead4KB32QD8; CString _randomWrite4KB32QD8; afx_msg void OnBnClickedButtonSeq1(); afx_msg void OnBnClickedButton512k1(); afx_msg void OnBnClickedButton4k1(); afx_msg void OnBnClickedButton4kqd321(); afx_msg void OnBnClickedButtonSeq2(); afx_msg void OnBnClickedButton512k2(); afx_msg void OnBnClickedButton4k2(); afx_msg void OnBnClickedButton4kqd322(); afx_msg void OnBnClickedButtonSeq3(); afx_msg void OnBnClickedButton512k3(); afx_msg void OnBnClickedButton4k3(); afx_msg void OnBnClickedButton4kqd323(); afx_msg void OnBnClickedButtonSeq4(); afx_msg void OnBnClickedButton512k4(); afx_msg void OnBnClickedButton4k4(); afx_msg void OnBnClickedButton4kqd324(); afx_msg void OnBnClickedButtonSeq5(); afx_msg void OnBnClickedButton512k5(); afx_msg void OnBnClickedButton4k5(); afx_msg void OnBnClickedButton4kqd325(); afx_msg void OnBnClickedButtonSeq6(); afx_msg void OnBnClickedButton512k6(); afx_msg void OnBnClickedButton4k6(); afx_msg void OnBnClickedButton4kqd326(); afx_msg void OnBnClickedButtonSeq7(); afx_msg void OnBnClickedButton512k7(); afx_msg void OnBnClickedButton4k7(); afx_msg void OnBnClickedButton4kqd327(); afx_msg void OnBnClickedButtonSeq8(); afx_msg void OnBnClickedButton512k8(); afx_msg void OnBnClickedButton4k8(); afx_msg void OnBnClickedButton4kqd328(); afx_msg void OnBnClickedButtonAllseq(); afx_msg void OnBnClickedButtonAll512k(); afx_msg void OnBnClickedButtonAll4k(); afx_msg void OnBnClickedButtonAll4kqd32(); };
// HTMLContrl.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "HTMLContrl.h" #include "HTMLContrlDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CHTMLContrlApp BEGIN_MESSAGE_MAP(CHTMLContrlApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CHTMLContrlApp 构造 CHTMLContrlApp::CHTMLContrlApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CHTMLContrlApp 对象 CHTMLContrlApp theApp; // CHTMLContrlApp 初始化 BOOL CHTMLContrlApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。 否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题 CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CHTMLContrlDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n"); TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } #ifndef _AFXDLL ControlBarCleanUp(); #endif // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
// HTMLContrlDlg.cpp : 实现文件 // #include "stdafx.h" #include "HTMLContrl.h" #include "HTMLContrlDlg.h" #include <mshtml.h> #include <oleacc.h> #include <atlbase.h> #include <COMUTIL.H> #include<ole2.h> #pragma comment(lib,"ole32") CComModule _Module; #include<atlcom.h> #pragma comment(lib,"comsupp.lib") #ifdef _DEBUG #define new DEBUG_NEW #endif // CHTMLContrlDlg 对话框 BEGIN_DHTML_EVENT_MAP(CHTMLContrlDlg) DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK) DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel) END_DHTML_EVENT_MAP() CHTMLContrlDlg::CHTMLContrlDlg(CWnd* pParent /*=NULL*/) : CDHtmlDialog(IDD_HTMLCONTRL_DIALOG, IDR_HTML_HTMLCONTRL_DIALOG, pParent) , _testNumber(_T("1")) , _testSize(_T("50MB")) , _sequentialRead1(_T("0.0")) , _sequentialWrite1(_T("0.0")) , _randomRead512KB1(_T("0.0")) , _randomWrite512KB1(_T("0.0")) , _randomRead4KB1(_T("0.0")) , _randomWrite4KB1(_T("0.0")) , _randomRead4KB32QD1(_T("0.0")) , _randomWrite4KB32QD1(_T("0.0")) , _sequentialRead2(_T("")) , _sequentialWrite2(_T("")) , _randomRead512KB2(_T("")) , _randomWrite512KB2(_T("")) , _randomRead4KB2(_T("")) , _randomWrite4KB2(_T("")) , _randomRead4KB32QD2(_T("")) , _randomWrite4KB32QD2(_T("")) , _sequentialRead3(_T("")) , _sequentialWrite3(_T("")) , _randomRead512KB3(_T("")) , _randomWrite512KB3(_T("")) , _randomRead4KB3(_T("")) , _randomWrite4KB3(_T("")) , _randomRead4KB32QD3(_T("")) , _randomWrite4KB32QD3(_T("")) , _sequentialRead4(_T("")) , _sequentialWrite4(_T("")) , _randomRead512KB4(_T("")) , _randomWrite512KB4(_T("")) , _randomRead4KB4(_T("")) , _randomWrite4KB4(_T("")) , _randomRead4KB32QD4(_T("")) , _randomWrite4KB32QD4(_T("")) , _sequentialRead5(_T("")) , _sequentialWrite5(_T("")) , _randomRead512KB5(_T("")) , _randomWrite512KB5(_T("")) , _randomRead4KB5(_T("")) , _randomWrite4KB5(_T("")) , _randomRead4KB32QD5(_T("")) , _randomWrite4KB32QD5(_T("")) , _sequentialRead6(_T("")) , _sequentialWrite6(_T("")) , _randomRead512KB6(_T("")) , _randomWrite512KB6(_T("")) , _randomRead4KB6(_T("")) , _randomWrite4KB6(_T("")) , _randomRead4KB32QD6(_T("")) , _randomWrite4KB32QD6(_T("")) , _sequentialRead7(_T("")) , _sequentialWrite7(_T("")) , _randomRead512KB7(_T("")) , _randomWrite512KB7(_T("")) , _randomRead4KB7(_T("")) , _randomWrite4KB7(_T("")) , _randomRead4KB32QD7(_T("")) , _randomWrite4KB32QD7(_T("")) , _sequentialRead8(_T("")) , _sequentialWrite8(_T("")) , _randomRead512KB8(_T("")) , _randomWrite512KB8(_T("")) , _randomRead4KB8(_T("")) , _randomWrite4KB8(_T("")) , _randomRead4KB32QD8(_T("")) , _randomWrite4KB32QD8(_T("")) { _winThread1 = NULL; _winThread = NULL; m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CHTMLContrlDlg::DoDataExchange(CDataExchange* pDX) { CDHtmlDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_TESTNUMBER, _cbTestNumber); DDX_Control(pDX, IDC_TESTSIZE, _cbTestSize); //DDX_CBString(pDX, IDC_TESTNUMBER, _testNumber); //DDX_CBString(pDX, IDC_TESTSIZE, _testSize); DDX_Text(pDX, IDC_EDIT1_SEQ_READ, _sequentialRead1); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE, _sequentialWrite1); DDX_Text(pDX, IDC_EDIT1_512K_READ, _randomRead512KB1); DDX_Text(pDX, IDC_EDIT1_512K_WRITE, _randomWrite512KB1); DDX_Text(pDX, IDC_EDIT1_4KB_READ, _randomRead4KB1); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE, _randomWrite4KB1); DDX_Text(pDX, IDC_EDIT1_QD32_READ, _randomRead4KB32QD1); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE, _randomWrite4KB32QD1); DDX_Text(pDX, IDC_EDIT1_SEQ_READ2, _sequentialRead2); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE2, _sequentialWrite2); DDX_Text(pDX, IDC_EDIT1_512K_READ2, _randomRead512KB2); DDX_Text(pDX, IDC_EDIT1_512K_WRITE2, _randomWrite512KB2); DDX_Text(pDX, IDC_EDIT1_4KB_READ2, _randomRead4KB2); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE2, _randomWrite4KB2); DDX_Text(pDX, IDC_EDIT1_QD32_READ2, _randomRead4KB32QD2); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE2, _randomWrite4KB32QD2); DDX_Text(pDX, IDC_EDIT1_SEQ_READ3, _sequentialRead3); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE3, _sequentialWrite3); DDX_Text(pDX, IDC_EDIT1_512K_READ3, _randomRead512KB3); DDX_Text(pDX, IDC_EDIT1_512K_WRITE3, _randomWrite512KB3); DDX_Text(pDX, IDC_EDIT1_4KB_READ3, _randomRead4KB3); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE3, _randomWrite4KB3); DDX_Text(pDX, IDC_EDIT1_QD32_READ3, _randomRead4KB32QD3); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE3, _randomWrite4KB32QD3); DDX_Text(pDX, IDC_EDIT1_SEQ_READ4, _sequentialRead4); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE4, _sequentialWrite4); DDX_Text(pDX, IDC_EDIT1_512K_READ4, _randomRead512KB4); DDX_Text(pDX, IDC_EDIT1_512K_WRITE4, _randomWrite512KB4); DDX_Text(pDX, IDC_EDIT1_4KB_READ4, _randomRead4KB4); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE4, _randomWrite4KB4); DDX_Text(pDX, IDC_EDIT1_QD32_READ4, _randomRead4KB32QD4); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE4, _randomWrite4KB32QD4); DDX_Text(pDX, IDC_EDIT1_SEQ_READ5, _sequentialRead5); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE5, _sequentialWrite5); DDX_Text(pDX, IDC_EDIT1_512K_READ5, _randomRead512KB5); DDX_Text(pDX, IDC_EDIT1_512K_WRITE5, _randomWrite512KB5); DDX_Text(pDX, IDC_EDIT1_4KB_READ5, _randomRead4KB5); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE5, _randomWrite4KB5); DDX_Text(pDX, IDC_EDIT1_QD32_READ5, _randomRead4KB32QD5); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE5, _randomWrite4KB32QD5); DDX_Text(pDX, IDC_EDIT1_SEQ_READ6, _sequentialRead6); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE6, _sequentialWrite6); DDX_Text(pDX, IDC_EDIT1_512K_READ6, _randomRead512KB6); DDX_Text(pDX, IDC_EDIT1_512K_WRITE6, _randomWrite512KB6); DDX_Text(pDX, IDC_EDIT1_4KB_READ6, _randomRead4KB6); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE6, _randomWrite4KB6); DDX_Text(pDX, IDC_EDIT1_QD32_READ6, _randomRead4KB32QD6); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE6, _randomWrite4KB32QD6); DDX_Text(pDX, IDC_EDIT1_SEQ_READ7, _sequentialRead7); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE7, _sequentialWrite7); DDX_Text(pDX, IDC_EDIT1_512K_READ7, _randomRead512KB7); DDX_Text(pDX, IDC_EDIT1_512K_WRITE7, _randomWrite512KB7); DDX_Text(pDX, IDC_EDIT1_4KB_READ7, _randomRead4KB7); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE7, _randomWrite4KB7); DDX_Text(pDX, IDC_EDIT1_QD32_READ7, _randomRead4KB32QD7); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE7, _randomWrite4KB32QD7); DDX_Text(pDX, IDC_EDIT1_SEQ_READ8, _sequentialRead8); DDX_Text(pDX, IDC_EDIT1_SEQ_WRITE8, _sequentialWrite8); DDX_Text(pDX, IDC_EDIT1_512K_READ8, _randomRead512KB8); DDX_Text(pDX, IDC_EDIT1_512K_WRITE8, _randomWrite512KB8); DDX_Text(pDX, IDC_EDIT1_4KB_READ8, _randomRead4KB8); DDX_Text(pDX, IDC_EDIT1_4KB_WRITE8, _randomWrite4KB8); DDX_Text(pDX, IDC_EDIT1_QD32_READ8, _randomRead4KB32QD8); DDX_Text(pDX, IDC_EDIT1_QD32_WRITE8, _randomWrite4KB32QD8); } BEGIN_MESSAGE_MAP(CHTMLContrlDlg, CDHtmlDialog) ON_BN_CLICKED(IDC_BUTTON_OPEN, &CHTMLContrlDlg::OnBnClickedButtonOpen) ON_MESSAGE(WM_MYUPDATEDATA,OnUpdateMyData) ON_CBN_SELCHANGE(IDC_TESTNUMBER, &CHTMLContrlDlg::OnSelchangeTestnumber) ON_CBN_SELCHANGE(IDC_TESTSIZE, &CHTMLContrlDlg::OnSelchangeTestsize) ON_WM_MOVE() ON_WM_NCLBUTTONUP() ON_WM_NCLBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_DESTROY() ON_BN_CLICKED(IDC_BUTTON_ALL, &CHTMLContrlDlg::OnBnClickedButtonAll) ON_BN_CLICKED(IDC_BUTTON_SEQ1, &CHTMLContrlDlg::OnBnClickedButtonSeq1) ON_BN_CLICKED(IDC_BUTTON_512K1, &CHTMLContrlDlg::OnBnClickedButton512k1) ON_BN_CLICKED(IDC_BUTTON_4k1, &CHTMLContrlDlg::OnBnClickedButton4k1) ON_BN_CLICKED(IDC_BUTTON_4KQD321, &CHTMLContrlDlg::OnBnClickedButton4kqd321) ON_BN_CLICKED(IDC_BUTTON_SEQ2, &CHTMLContrlDlg::OnBnClickedButtonSeq2) ON_BN_CLICKED(IDC_BUTTON_512K2, &CHTMLContrlDlg::OnBnClickedButton512k2) ON_BN_CLICKED(IDC_BUTTON_4k2, &CHTMLContrlDlg::OnBnClickedButton4k2) ON_BN_CLICKED(IDC_BUTTON_4KQD322, &CHTMLContrlDlg::OnBnClickedButton4kqd322) ON_BN_CLICKED(IDC_BUTTON_SEQ3, &CHTMLContrlDlg::OnBnClickedButtonSeq3) ON_BN_CLICKED(IDC_BUTTON_512K3, &CHTMLContrlDlg::OnBnClickedButton512k3) ON_BN_CLICKED(IDC_BUTTON_4k3, &CHTMLContrlDlg::OnBnClickedButton4k3) ON_BN_CLICKED(IDC_BUTTON_4KQD323, &CHTMLContrlDlg::OnBnClickedButton4kqd323) ON_BN_CLICKED(IDC_BUTTON_SEQ4, &CHTMLContrlDlg::OnBnClickedButtonSeq4) ON_BN_CLICKED(IDC_BUTTON_512K4, &CHTMLContrlDlg::OnBnClickedButton512k4) ON_BN_CLICKED(IDC_BUTTON_4k4, &CHTMLContrlDlg::OnBnClickedButton4k4) ON_BN_CLICKED(IDC_BUTTON_4KQD324, &CHTMLContrlDlg::OnBnClickedButton4kqd324) ON_BN_CLICKED(IDC_BUTTON_SEQ5, &CHTMLContrlDlg::OnBnClickedButtonSeq5) ON_BN_CLICKED(IDC_BUTTON_512K5, &CHTMLContrlDlg::OnBnClickedButton512k5) ON_BN_CLICKED(IDC_BUTTON_4k5, &CHTMLContrlDlg::OnBnClickedButton4k5) ON_BN_CLICKED(IDC_BUTTON_4KQD325, &CHTMLContrlDlg::OnBnClickedButton4kqd325) ON_BN_CLICKED(IDC_BUTTON_SEQ6, &CHTMLContrlDlg::OnBnClickedButtonSeq6) ON_BN_CLICKED(IDC_BUTTON_512K6, &CHTMLContrlDlg::OnBnClickedButton512k6) ON_BN_CLICKED(IDC_BUTTON_4k6, &CHTMLContrlDlg::OnBnClickedButton4k6) ON_BN_CLICKED(IDC_BUTTON_4KQD326, &CHTMLContrlDlg::OnBnClickedButton4kqd326) ON_BN_CLICKED(IDC_BUTTON_SEQ7, &CHTMLContrlDlg::OnBnClickedButtonSeq7) ON_BN_CLICKED(IDC_BUTTON_512K7, &CHTMLContrlDlg::OnBnClickedButton512k7) ON_BN_CLICKED(IDC_BUTTON_4k7, &CHTMLContrlDlg::OnBnClickedButton4k7) ON_BN_CLICKED(IDC_BUTTON_4KQD327, &CHTMLContrlDlg::OnBnClickedButton4kqd327) ON_BN_CLICKED(IDC_BUTTON_SEQ8, &CHTMLContrlDlg::OnBnClickedButtonSeq8) ON_BN_CLICKED(IDC_BUTTON_512K8, &CHTMLContrlDlg::OnBnClickedButton512k8) ON_BN_CLICKED(IDC_BUTTON_4k8, &CHTMLContrlDlg::OnBnClickedButton4k8) ON_BN_CLICKED(IDC_BUTTON_4KQD328, &CHTMLContrlDlg::OnBnClickedButton4kqd328) ON_BN_CLICKED(IDC_BUTTON_ALLSEQ, &CHTMLContrlDlg::OnBnClickedButtonAllseq) ON_BN_CLICKED(IDC_BUTTON_ALL512K, &CHTMLContrlDlg::OnBnClickedButtonAll512k) ON_BN_CLICKED(IDC_BUTTON_ALL4K, &CHTMLContrlDlg::OnBnClickedButtonAll4k) ON_BN_CLICKED(IDC_BUTTON_ALL4KQD32, &CHTMLContrlDlg::OnBnClickedButtonAll4kqd32) END_MESSAGE_MAP() // CHTMLContrlDlg 消息处理程序 BOOL CHTMLContrlDlg::OnInitDialog() { CDHtmlDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 _cbTestNumber.AddString("1"); _cbTestNumber.AddString("2"); _cbTestNumber.AddString("3"); _cbTestNumber.AddString("4"); _cbTestNumber.AddString("5"); _cbTestNumber.AddString("6"); _cbTestNumber.AddString("7"); _cbTestNumber.AddString("8"); _cbTestNumber.AddString("9"); _cbTestSize.AddString("50MB"); _cbTestSize.AddString("100MB"); _cbTestSize.AddString("500MB"); _cbTestSize.AddString("1000MB"); _cbTestSize.AddString("2000MB"); _cbTestSize.AddString("4000MB"); return TRUE; } void CHTMLContrlDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDHtmlDialog::OnPaint(); } } //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CHTMLContrlDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } HRESULT CHTMLContrlDlg::OnButtonOK(IHTMLElement* /*pElement*/) { OnOK(); return S_OK; } HRESULT CHTMLContrlDlg::OnButtonCancel(IHTMLElement* /*pElement*/) { OnCancel(); return S_OK; } // // RandomLeftThread // 在线程中,对窗口数据变化时发送自定义消息WM_MYUPDATEDATA // // Formal Parameters: // pDlg = 使用线程的窗口类对象 // // Global Input Parameters: // WM_MYUPDATEDATA = 自定义宏消息 // // Global Output Parameters: // None // // Return Value: // None // void RandomLeftThread( CHTMLContrlDlg *pDlg ) { pDlg->SendMessage(WM_MYUPDATEDATA, FALSE); } // // OnUpdateMyData // 自定义消息映射函数 // // Formal Parameters: // 由窗口传入 // // Global Input Parameters: // none // // Global Output Parameters: // None // // Return Value: // TRUE = 函数执行完毕 // LRESULT CHTMLContrlDlg::OnUpdateMyData(WPARAM Wparam, LPARAM lParam) { UpdateData(Wparam); return TRUE; } // // MyThreadRead // 线程调用函数,实现对变量的变化进行窗口显示 // // Formal Parameters: // dlg = 在调用的线程中传入this指针 // // Global Input Parameters: // _strReadRate = 成员读取变量 // // Global Output Parameters: // None // // Return Value: // TRUE = 函数执行完毕 // UINT MyThreadRead1( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[0].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[0].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText ; while (true) { // RandomLeftThread(pDlg); ele1->get_innerText(&eleText); pDlg->_sequentialRead1 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB1 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB1 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD1 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite1 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB1 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB1 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD1 = eleText; Sleep(1000); } return TRUE; } UINT MyThreadRead2( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[1].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[1].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead2 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB2 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB2 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD2 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite2 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB2 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB2 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD2 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead3( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[2].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[2].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead3 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB3 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB3 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD3 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite3 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB3 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB3 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD3 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead4( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[3].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[3].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead4 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB4 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB4 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD4 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite4 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB4 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB4 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD4 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead5( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[4].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[4].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead5 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB5 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB5 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD5 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite5 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB5 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB5 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD5 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead6( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[5].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[5].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead6 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB6 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB6 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD6 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite6 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB6 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB6 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD6 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead7( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[6].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[6].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead7 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB7 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB7 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD7 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite7 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB7 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB7 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD7 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } UINT MyThreadRead8( LPVOID dlg ) { CHTMLContrlDlg *pDlg = (CHTMLContrlDlg*)dlg; if ((pDlg->_handles[7].hwndChild) == NULL) { pDlg->MessageBox("hwndChild为空", "警告!"); return FALSE; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(pDlg->_handles[7].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return FALSE; } CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> ele4; CComPtr<IHTMLElement> ele5; CComPtr<IHTMLElement> ele6; CComPtr<IHTMLElement> ele7; CComPtr<IHTMLElement> ele8; spDoc->elementFromPoint(140, 94, &ele1);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(140, 146, &ele2); spDoc->elementFromPoint(140, 199, &ele3); spDoc->elementFromPoint(140, 247, &ele4); spDoc->elementFromPoint(250, 94, &ele5); spDoc->elementFromPoint(250, 146, &ele6); spDoc->elementFromPoint(250, 199, &ele7); spDoc->elementFromPoint(250, 247, &ele8); BSTR eleText; while (true) { ele1->get_innerText(&eleText); pDlg->_sequentialRead8 = eleText; ele2->get_innerText(&eleText); pDlg->_randomRead512KB8 = eleText; ele3->get_innerText(&eleText); pDlg->_randomRead4KB8 = eleText; ele4->get_innerText(&eleText); pDlg->_randomRead4KB32QD8 = eleText; ele5->get_innerText(&eleText); pDlg->_sequentialWrite8 = eleText; ele6->get_innerText(&eleText); pDlg->_randomWrite512KB8 = eleText; ele7->get_innerText(&eleText); pDlg->_randomWrite4KB8 = eleText; ele8->get_innerText(&eleText); pDlg->_randomWrite4KB32QD8 = eleText; Sleep(1000); RandomLeftThread(pDlg); } return TRUE; } // // EnumChildProc // ::EnumChildWindows枚举函数的执行函数,实现对指定句柄的窗口进行子创建的遍历,直到最后一个窗口未找到则结束函数 // // Formal Parameters: // hwnd = 父窗口的句柄 // lParam = 查找到的指定子窗口的句柄 // // Global Input Parameters: // None // // Global Output Parameters: // None // // Return Value: // FALSE = 查找到指定的类的窗口,函数结束 // TRUE = 未找到指定的窗口,继续枚举 // BOOL CALLBACK EnumChildProc( HWND hwnd, LPARAM lParam ) { // // EnumChildWindows的枚举函数 // 枚举找到Internet Explorer_Server的窗口的句柄 // TCHAR szClassName[100]; ::GetClassName(hwnd, szClassName, sizeof(szClassName)); if (_tcscmp(szClassName, _T("Internet Explorer_Server")) == 0) { *(HWND*)lParam = hwnd; return FALSE; // 找到第一个 IE 控件的子窗口就停止 } else return TRUE; // 继续枚举子窗口 } // // FindWindowsHwnd // 调用::EnumChildWindows枚举函数进行枚举子窗口,总共枚举8个指定父句柄的窗口 // // Formal Parameters: // None // // Global Input Parameters: // _handles[i].explorerHwnd = 父窗口的句柄 // // Global Output Parameters: // _handles[i].hwndChild = 查找到的指定子窗口的句柄 // // Return Value: // None // BOOL CHTMLContrlDlg::FindWindowsHwnd() { // //进行8次循环,每次循环找到父句柄为_hands[i].explorerHwnd下的子窗口, //(_handles[i].hwndChild为找到的句柄,NULL为没找到 // for (int i = 0; i < 8; i++) { ::EnumChildWindows(_handles[i].explorerHwnd, EnumChildProc, (LPARAM)&(_handles[i].hwndChild));//通过枚举找到窗口句柄 if (NULL == (_handles[i].hwndChild)) { MessageBox("FindWinwsHwnd error", "警告"); return FALSE; } } return TRUE; } // // OnBnClickedButtonOpen // 打开工具按钮的实现: // 通过ShellExecute函数找到本工程目录下的DiskMarkX64.exe工具,并执行打开 // 通过SetWindowPos排布打开工具的初始位置 // 通过FindWindow找到DiskMarkX64.exe工具主窗口的句柄 // 创建一个线程执行查找IE窗口的接口,线程执行函数MyWindows,使用线程是避免在执行循环查找的时候,对话框失去控制 // // Formal Parameters: // None // // Global Input Parameters: // None // // Global Output Parameters: // _handles[i].explorerHwnd = 指定打开的窗口的句柄 // // Return Value: // None // void CHTMLContrlDlg::OnBnClickedButtonOpen() { if (_winThread && _winThread2 && _winThread3 && _winThread4 && _winThread5 && _winThread6 && _winThread7 && _winThread8 ) { return; } int temp=0; // //进行8次循环,即打开8个工程目录下的DiskMarkX64.exe工具 //前4个放第一行,后4个放第二行 // for (int i = 0; i < 8; i++) { ::ShellExecute(NULL, "open", ".\\CrystalDiskMark_3.0.0d_azo\\DiskMarkX64.exe", NULL, NULL, SW_SHOWMINIMIZED); Sleep(200); _handles[i].explorerHwnd = ::FindWindow(NULL, _T("CrystalDiskMark 3.0 x64")); if (!(_handles[i].explorerHwnd)) { ::MessageBox(m_hWnd, TEXT("CrystalDiskMark - Internet Explorer"), NULL, MB_OK); return; } //::SetForegroundWindow(_handles[i].explorerHwnd); //::SetWindowPos(_handles[i].explorerHwnd, HWND_TOP, WIDTH, OFFSET_Y, 0, 0, SWP_HIDEWINDOW);//隐藏窗口 } BOOL ret = FindWindowsHwnd(); if (FALSE == ret) { MessageBox("打开工具失败,请重启软件", "提示"); return; } _winThread1 = AfxBeginThread(MyThreadRead1, (void*)this); _winThread2 = AfxBeginThread(MyThreadRead2, (void*)this); _winThread3 = AfxBeginThread(MyThreadRead3, (void*)this); _winThread4 = AfxBeginThread(MyThreadRead4, (void*)this); _winThread5 = AfxBeginThread(MyThreadRead5, (void*)this); _winThread6 = AfxBeginThread(MyThreadRead6, (void*)this); _winThread7 = AfxBeginThread(MyThreadRead7, (void*)this); _winThread8 = AfxBeginThread(MyThreadRead8, (void*)this); } // // OnSelchangeTestnumber // 按钮1 - 9选择的实现 // 有8个窗口,所以每点击一下按钮要遍历8个窗口并发送消息 // // Formal Parameters: // None // // Global Input Parameters: // _handles[i].hwndChild 子窗口的句柄 // 通过::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"))函数注册调用::ObjectFromLresult函数 // 通过::SendMessageTimeout函数阻塞等待消息的注册 // 然后通过::ObjectFromLresult获得IE接口 // // Global Output Parameters: // None // // Return Value: // None // void CHTMLContrlDlg::OnSelchangeTestnumber() { // //进行8次循环,也就是对8个打开的窗口的testNumber的值进行更新为当前的值 // for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("hwndChild为空", "警告!"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) { return; } CComPtr < IHTMLElementCollection > spElementCollection; hr = spDoc->get_all(&spElementCollection); //获取HTML网页上的所有元素 if (FAILED(hr)) { return; } long elementLength; hr = spElementCollection->get_length(&elementLength);//计算HTML网页上的所有元素的数量 if (FAILED(hr)) { return; } VARIANT name; CComBSTR tag; name.vt = VT_I4; // //遍历网页中的所有元素(elementLength) // for (int i = 0; i < elementLength; i++) //循环找到网页上的元素,通过控件标识判别指定的元素 { name.lVal = i; IDispatch * pDispatch = NULL; HRESULT res = spElementCollection->item(name, name, &pDispatch);//通过指针遍历元素 if (FAILED(res)) { continue; } CComPtr<IHTMLSelectElement> pHtmlElement; hr = pDispatch->QueryInterface(IID_IHTMLSelectElement, (void**)&pHtmlElement);//查询是否为指定的接口,不是继续查找下一个 if (FAILED(hr)) { continue; } BSTR name; CString tempStr; long value; pHtmlElement->get_name(&name); tempStr = name; // //网页元素name是TestNumber则满足条件 // int nIndex = _cbTestNumber.GetCurSel(); //当前选中的项 if (tempStr.Compare("TestNumber") == 0) { // //value为每一个满足name是TestNumber的数量,因为每个TestNumber有多个子元素,而我们只需要一个, // 所以每次更新数据后即跳过整个没必要的选项 // pHtmlElement->get_length(&value); pHtmlElement->put_selectedIndex(nIndex);//向网页输出选定的层次 i += value; } } } } // // OnSelchangeTestsize // 按钮50MB - 4000MB选择的实现 //有8个窗口,所以每点击一下按钮要遍历8个窗口并发送消息 // // Formal Parameters: // None // // Global Input Parameters: // hands[i].hwndChild 子窗口的句柄 // 通过::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); 函数注册调用::ObjectFromLresult函数 // 通过::SendMessageTimeout函数阻塞等待消息的注册 // 然后通过::ObjectFromLresult获得IE接口 // // Global Output Parameters: // None // // Return Value: // None // void CHTMLContrlDlg::OnSelchangeTestsize() { // //进行8次循环,也就是对8个打开的窗口的testsize的值进行更新为当前的值 // for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("hwndChild为空", "警告!"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr < IHTMLElementCollection > spElementCollection; hr = spDoc->get_all(&spElementCollection); if (FAILED(hr)) { return; } long elementLength; hr = spElementCollection->get_length(&elementLength); if (FAILED(hr)) { return; } VARIANT name; CComBSTR tag; name.vt = VT_I4; // //遍历网页中的所有元素(elementLength) // for (int i = 0; i < elementLength; i++) { name.lVal = i; IDispatch * pDispatch = NULL; HRESULT res = spElementCollection->item(name, name, &pDispatch); if (FAILED(res)) { continue; } CComPtr<IHTMLSelectElement> pHtmlElement; hr = pDispatch->QueryInterface(IID_IHTMLSelectElement, (void**)&pHtmlElement); if (FAILED(hr)) { continue; } BSTR name; CString tempStr; long value; int nIndex = _cbTestSize.GetCurSel(); //当前选中的项 pHtmlElement->get_name(&name); tempStr = name; // //网页元素name是TestSize则满足条件 // if (tempStr.Compare("TestSize") == 0) { // // value为每一个满足name是TestSize的数量,因为每个TestSize有多个子元素,而我们只需要一个, // 所以每次更新数据后即跳过整个没必要的选项 // pHtmlElement->get_length(&value); pHtmlElement->put_selectedIndex(nIndex); i += value; } } } } // // OnMove // 窗口移动消息映射函数,将8个外部窗口跟随创建的窗口移动 // // Formal Parameters: // x = 移动y方向的位置 // y = 移动y方向的位置 // // Global Input Parameters: // hands[i].explorerHwnd = 每个需移动窗口的句柄 // // Global Output Parameters: // _pos_x = 记录当前主窗口x位置 // _pos_y = 记录当前主窗口y位置 // // Return Value: // None // void CHTMLContrlDlg::OnMove(int x, int y) { // //通过MoveWindow函数实现,当窗口移动时,指定窗口跟随移动 // CDHtmlDialog::OnMove(x, y); // TODO: 在此处添加消息处理程序代码 } void CHTMLContrlDlg::OnNcLButtonUp(UINT nHitTest, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDHtmlDialog::OnNcLButtonUp(nHitTest, point); } void CHTMLContrlDlg::OnNcLButtonDown(UINT nHitTest, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDHtmlDialog::OnNcLButtonDown(nHitTest, point); } void CHTMLContrlDlg::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDHtmlDialog::OnLButtonUp(nFlags, point); } void CHTMLContrlDlg::OnDestroy() { CDHtmlDialog::OnDestroy(); // //当控制窗口销毁时,对8个窗口进行关闭 // for (int i = 0; i < 8; i++) { ::SendMessage(_handles[i].explorerHwnd, WM_CLOSE, NULL, NULL); } // TODO: 在此处添加消息处理程序代码 } // // OnBnClickedButtonAll // 窗口按钮All的实现 // 有8个窗口,所以每点击一下按钮要遍历8个窗口并发送消息 // 通过::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); 函数注册调用::ObjectFromLresult函数 // 通过::SendMessageTimeout函数阻塞等待消息的注册 // 然后通过::ObjectFromLresult获得IE接口 // // Global Input Parameters: // hands[i].hwndChild = 每个需点击窗口的句柄 // // Global Output Parameters: // None // // Return Value: // None // void CHTMLContrlDlg::OnBnClickedButtonAll() { int flag = 0; for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; // //改变界面All点击的状态 // CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> eleAll; spDoc->elementFromPoint(40, 44, &eleAll); spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); eleAll->click(); Sleep(100); BSTR name; eleAll->get_innerText(&name); CString idName(name); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_ALL, "Stop"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "Stop"); SetDlgItemText(IDC_BUTTON_ALL512K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "Stop"); // //改变界面上每个按钮点击后的状态,0-7分别代表8个界面 // switch (i) { case 0: { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); break; } case 1: { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); break; } case 2: { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); break; } case 3: { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); break; } case 4: { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); break; } case 5: { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); break; } case 6: { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); break; } case 7: { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); break; } } } else { eleAll->get_innerText(&name); idName = name; if (0 == idName.Compare("All")) { flag = 1; } ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } } if (flag == 1) { SetDlgItemText(IDC_BUTTON_ALL, "一键All"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "一键Seq"); SetDlgItemText(IDC_BUTTON_ALL512K, "一键512K"); SetDlgItemText(IDC_BUTTON_ALL4K, "一键4K"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "一键4KQD32"); } } void CHTMLContrlDlg::OnBnClickedButtonSeq1() { if ((_handles[0].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[0].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ1, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k1() { if ((_handles[0].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[0].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ1, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k1() { if ((_handles[0].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[0].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ1, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd321() { if ((_handles[0].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[0].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ1, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); } UpdateData(FALSE); UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq2() { if ((_handles[1].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[1].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ2, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ2, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K2, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k2, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD322, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k2() { if ((_handles[1].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[1].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ2, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ2, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K2, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k2, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD322, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k2() { if ((_handles[1].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[1].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ2, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ2, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K2, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k2, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD322, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd322() { if ((_handles[1].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[1].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ2, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ2, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K2, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k2, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD322, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq3() { if ((_handles[2].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[2].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ3, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ3, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K3, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k3, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD323, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k3() { if ((_handles[2].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[2].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ3, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ3, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K3, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k3, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD323, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k3() { if ((_handles[2].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[2].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ3, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ3, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K3, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k3, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD323, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd323() { if ((_handles[2].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[2].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ3, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ3, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K3, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k3, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD323, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq4() { if ((_handles[3].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[3].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ4, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ4, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K4, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k4, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD324, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k4() { if ((_handles[3].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[3].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ4, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ4, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K4, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k4, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD324, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k4() { if ((_handles[3].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[3].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ4, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ4, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K4, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k4, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD324, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd324() { if ((_handles[3].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[3].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ4, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ4, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K4, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k4, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD324, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq5() { if ((_handles[4].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[4].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ5, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ5, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K5, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k5, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD325, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k5() { if ((_handles[4].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[4].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ5, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ5, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K5, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k5, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD325, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k5() { if ((_handles[4].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[4].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ5, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ5, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K5, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k5, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD325, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd325() { if ((_handles[4].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[4].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ5, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ5, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K5, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k5, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD325, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq6() { if ((_handles[5].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[5].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ6, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ6, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K6, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k6, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD326, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k6() { if ((_handles[5].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[5].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ6, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ6, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K6, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k6, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD326, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k6() { if ((_handles[5].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[5].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ6, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ6, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K6, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k6, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD326, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd326() { if ((_handles[5].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[5].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ6, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ6, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K6, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k6, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD326, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq7() { if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[6].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ7, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ7, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K7, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k7, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD327, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k7() { if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[6].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ7, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ7, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K7, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k7, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD327, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k7() { if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[6].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ7, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ7, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K7, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k7, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD327, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd327() { if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[6].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; if ((_handles[6].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ7, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ7, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K7, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k7, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD327, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonSeq8() { if ((_handles[7].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[7].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; if ((_handles[7].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ8, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD328, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton512k8() { if ((_handles[7].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[7].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ8, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD328, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4k8() { if ((_handles[7].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[7].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ8, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD328, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButton4kqd328() { if ((_handles[7].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[7].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); SetDlgItemText(IDC_BUTTON_SEQ8, idName); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } else { ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD328, idName); } UpdateData(FALSE); } void CHTMLContrlDlg::OnBnClickedButtonAllseq() { int flag = 0; for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> eleAll; spDoc->elementFromPoint(40, 44, &eleAll); spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele0->click(); Sleep(100); BSTR name; ele0->get_innerText(&name); CString idName(name); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_ALL, "Stop"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "Stop"); SetDlgItemText(IDC_BUTTON_ALL512K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "Stop"); switch (i) { case 0: { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); break; } case 1: { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); break; } case 2: { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); break; } case 3: { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); break; } case 4: { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); break; } case 5: { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); break; } case 6: { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); break; } case 7: { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); break; } } } else { ele0->get_innerText(&name); idName = name; if (0 == idName.Compare("Seq")) { flag = 1; } ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } } if (1 == flag) { SetDlgItemText(IDC_BUTTON_ALL, "一键All"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "一键Seq"); SetDlgItemText(IDC_BUTTON_ALL512K, "一键512K"); SetDlgItemText(IDC_BUTTON_ALL4K, "一键4K"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "一键4KQD32"); } } void CHTMLContrlDlg::OnBnClickedButtonAll512k() { int flag = 0; for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> eleAll; spDoc->elementFromPoint(40, 44, &eleAll); spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele1->click(); Sleep(100); BSTR name; ele1->get_innerText(&name); CString idName(name); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_ALL, "Stop"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "Stop"); SetDlgItemText(IDC_BUTTON_ALL512K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "Stop"); switch (i) { case 0: { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); break; } case 1: { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); break; } case 2: { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); break; } case 3: { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); break; } case 4: { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); break; } case 5: { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); break; } case 6: { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); break; } case 7: { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); break; } } } else { ele1->get_innerText(&name); idName = name; if (0 == idName.Compare("512K")) { flag = 1; } ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } } if (1 == flag) { SetDlgItemText(IDC_BUTTON_ALL, "一键All"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "一键Seq"); SetDlgItemText(IDC_BUTTON_ALL512K, "一键512K"); SetDlgItemText(IDC_BUTTON_ALL4K, "一键4K"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "一键4KQD32"); } } void CHTMLContrlDlg::OnBnClickedButtonAll4k() { int flag = 0; for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> eleAll; spDoc->elementFromPoint(40, 44, &eleAll); spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele2->click(); Sleep(100); BSTR name; ele2->get_innerText(&name); CString idName(name); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_ALL, "Stop"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "Stop"); SetDlgItemText(IDC_BUTTON_ALL512K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "Stop"); switch (i) { case 0: { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); break; } case 1: { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); break; } case 2: { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); break; } case 3: { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); break; } case 4: { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); break; } case 5: { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); break; } case 6: { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); break; } case 7: { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); break; } } } else { ele2->get_innerText(&name); idName = name; if (0 == idName.Compare("4K")) { flag = 1; } ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } } if (1 == flag) { SetDlgItemText(IDC_BUTTON_ALL, "一键All"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "一键Seq"); SetDlgItemText(IDC_BUTTON_ALL512K, "一键512K"); SetDlgItemText(IDC_BUTTON_ALL4K, "一键4K"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "一键4KQD32"); } } void CHTMLContrlDlg::OnBnClickedButtonAll4kqd32() { int flag = 0; for (int i = 0; i < 8; i++) { if ((_handles[i].hwndChild) == NULL) { MessageBox("请先打开工具", "警告!hwndChild为空"); return; } CComPtr < IHTMLDocument2 > spDoc; LRESULT lRes; UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT")); ::SendMessageTimeout(_handles[i].hwndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&(lRes)); HRESULT hr = ::ObjectFromLresult(lRes, IID_IHTMLDocument2, 0, (LPVOID *)&(spDoc)); if (FAILED(hr)) return; CComPtr<IHTMLElement> ele0; CComPtr<IHTMLElement> ele1; CComPtr<IHTMLElement> ele2; CComPtr<IHTMLElement> ele3; CComPtr<IHTMLElement> eleAll; spDoc->elementFromPoint(40, 44, &eleAll); spDoc->elementFromPoint(40, 96, &ele0);//对指定位置上的按钮进行控制 spDoc->elementFromPoint(40, 146, &ele1); spDoc->elementFromPoint(40, 202, &ele2); spDoc->elementFromPoint(40, 254, &ele3); ele3->click(); Sleep(100); BSTR name; ele3->get_innerText(&name); CString idName(name); if (0 == idName.Compare("Stop")) { SetDlgItemText(IDC_BUTTON_ALL, "Stop"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "Stop"); SetDlgItemText(IDC_BUTTON_ALL512K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4K, "Stop"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "Stop"); switch (i) { case 0: { SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4KQD321, idName); break; } case 1: { SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); break; } case 2: { SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); break; } case 3: { SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); break; } case 4: { SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); break; } case 5: { SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); break; } case 6: { SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); break; } case 7: { SetDlgItemText(IDC_BUTTON_SEQ8, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); break; } } } else { ele3->get_innerText(&name); idName = name; if (8 == idName.GetLength()) { flag = 1; } ele0->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_SEQ1, idName); SetDlgItemText(IDC_BUTTON_SEQ2, idName); SetDlgItemText(IDC_BUTTON_SEQ3, idName); SetDlgItemText(IDC_BUTTON_SEQ4, idName); SetDlgItemText(IDC_BUTTON_SEQ5, idName); SetDlgItemText(IDC_BUTTON_SEQ6, idName); SetDlgItemText(IDC_BUTTON_SEQ7, idName); SetDlgItemText(IDC_BUTTON_SEQ8, idName); ele1->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_512K1, idName); SetDlgItemText(IDC_BUTTON_512K2, idName); SetDlgItemText(IDC_BUTTON_512K3, idName); SetDlgItemText(IDC_BUTTON_512K4, idName); SetDlgItemText(IDC_BUTTON_512K5, idName); SetDlgItemText(IDC_BUTTON_512K6, idName); SetDlgItemText(IDC_BUTTON_512K7, idName); SetDlgItemText(IDC_BUTTON_512K8, idName); ele2->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4k1, idName); SetDlgItemText(IDC_BUTTON_4k2, idName); SetDlgItemText(IDC_BUTTON_4k3, idName); SetDlgItemText(IDC_BUTTON_4k4, idName); SetDlgItemText(IDC_BUTTON_4k5, idName); SetDlgItemText(IDC_BUTTON_4k6, idName); SetDlgItemText(IDC_BUTTON_4k7, idName); SetDlgItemText(IDC_BUTTON_4k8, idName); ele3->get_innerText(&name); idName = name; SetDlgItemText(IDC_BUTTON_4KQD321, idName); SetDlgItemText(IDC_BUTTON_4KQD322, idName); SetDlgItemText(IDC_BUTTON_4KQD323, idName); SetDlgItemText(IDC_BUTTON_4KQD324, idName); SetDlgItemText(IDC_BUTTON_4KQD325, idName); SetDlgItemText(IDC_BUTTON_4KQD326, idName); SetDlgItemText(IDC_BUTTON_4KQD327, idName); SetDlgItemText(IDC_BUTTON_4KQD328, idName); } } if (1 == flag) { SetDlgItemText(IDC_BUTTON_ALL, "一键All"); SetDlgItemText(IDC_BUTTON_ALLSEQ, "一键Seq"); SetDlgItemText(IDC_BUTTON_ALL512K, "一键512K"); SetDlgItemText(IDC_BUTTON_ALL4K, "一键4K"); SetDlgItemText(IDC_BUTTON_ALL4KQD32, "一键4KQD32"); } }
MFC对磁盘测速工具CrystalDiskMark6_0_0的工厂方式控制源代码 同时控制 8个窗口,界面同步显示,比较完整点的版本
最新推荐文章于 2022-02-15 09:15:11 发布