MFC对磁盘测速工具CrystalDiskMark6_0_0的工厂方式控制源代码 同时控制 8个窗口,界面同步显示,比较完整点的版本
- 控件ID可以在程序中查找或者自己根据ID类型定义更
- 源代码可在此处下载 http://download.csdn.net/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// CHTMLContrlAppBEGIN_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 _AFXDLLControlBarCleanUp(); #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个窗口,界面同步显示,比较完整点的版本相关推荐
- win10自带磁盘测速工具
win10自带磁盘测速工具,可以测量固态硬盘和机械硬盘的读写速度.下面介绍一下怎么使用. 以管理员身份运行命令行程序,在搜索框输入[cmd],右键点击出现[以管理员身份运行].(否则在win10下面最 ...
- 使用windows自带的磁盘测速工具对硬盘进行测速——从此无需额外下载第三方硬盘测速工具
文章目录 1. 以管理员身份运行PowerShell 2. 对系统盘(C盘)进行测速 3. 对某一指定的硬盘分区进行测速 1. 以管理员身份运行PowerShell 鼠标右键单击屏幕左下角的Windo ...
- linux下磁盘测速,linux下磁盘测速工具
fio 是最佳磁盘性能测试工具,磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 1.测试顺序读性能 fio –filename=/data/test.io -iod ...
- linux下磁盘测速工具
fio 是最佳磁盘性能测试工具,磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 1.测试顺序读性能 fio --filename=./test -iodepth=6 ...
- 硬盘读写测试工具_硬盘测速工具:Blackmagic Disk Speed Test Mac
Blackmagic Disk Speed Test for Mac是Mac上检测硬盘功能的硬盘测速工具,使用disk speed test mac可以检测并验证你的硬盘性能,以及硬盘读入和读出的能力 ...
- Linux系统调优详解(十二)——IO调优之磁盘测速
今天继续给大家介绍Linux运维相关知识,本文主要内容是IO调优,测试对磁盘的速度. 在进行Linux系统调优的时候,我们需要对当前系统的硬盘读写速度进行测试.此时,我们可以选择使用hdparm命令或 ...
- Linux Command iperf3网络测速工具
Linux Command iperf3网络测速工具 文章目录 Linux Command iperf3网络测速工具 1. 简介 2. 安装 3. 功能 4. 参数 5. 示例 5.1 测试TCP吞吐 ...
- win和linux下的磁盘测速(读写速度)
win和linux下的磁盘测速(读写速度)1 - 命令行工具测速 后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速 一.linux 下磁盘测速 1. 首先找到都有那些磁盘df命令(di ...
- 电脑测速软件_不服跑个分!常见固态硬盘测速工具性价比盘点(上)
尽管不像CPU的核心或线程数量那样直观,固态硬盘性能在近几年电脑硬件中确实增长迅速.不同类型的测速软件也是五花八门,不服跑个分之后,我们能从分数中得到什么?又会因为这次跑分对硬盘产生多少写入量? 笔者 ...
- 查看网络抖动_Linux下3种常用的网络测速工具
大家好,我是良许. 不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生.本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络 ...
最新文章
- case 语句不跳转,死循环
- [PM Tools]软件项目进度跟踪表v4.0
- java多字段排序,Java8对多个字段排序
- 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码
- 前端程序升级linux方案,开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)...
- 99.6%屏占比 vivo NEX 3升级版入网:865+55W快充
- Console.log对象显示
- 用每日新闻预测金融市场变化
- Springmvc源码分析之dispatcherServlet
- 如何准备软件评测师考试
- CHIP-seq流程学习笔记(11)-使用GSEA软件进行GSEA分析
- C#-WinForm-打印控件
- 【复习】物联网导论知识梳理
- 微信公众号访问 ssm框架根目录下MP_verify_xxxxxx.txt的解决方法
- H5viedo标签播放*.Mp4听得到音频却不显示视频的解决办法
- python 网络 select
- 解忧云SMS短信服务平台系统 短信发送系统源码 全解密随时可以二开无后门
- Java网课|apiscanner
- MBR膜是什么?起到哪些用途?-世来福
- 从事计算机行业考MBA有用吗,什么行业需要考mba
热门文章
- PMP-项目沟通管理
- [论文解读] Bridging Machine Learning and Logical Reasoning by Abductive Learning
- 【组合优化】旅行商问题Traveling Salesman Problem(TSP)-概述
- 16种系统测试方法概念+测试要点
- 阿里云docker提交及删除入门操作
- 人脸关键点检测——dlib
- 电脑本地连接,电脑出现多个“本地连接”的解决方法
- M27C64A引脚说明
- 移动平均法,加权平均法
- hdoj 2122 Ice_cream’s world III【最小生成树】