1. 控件ID可以在程序中查找或者自己根据ID类型定义更
  2. 源代码可在此处下载 http://download.csdn.net/download/zggzgw/10185335
  3. 毕竟查资料把积分花光了,所以收了点积分为下次查资料使用
  4. 界面如图所示
  5. // 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;
  6. // 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个窗口,界面同步显示,比较完整点的版本相关推荐

  1. win10自带磁盘测速工具

    win10自带磁盘测速工具,可以测量固态硬盘和机械硬盘的读写速度.下面介绍一下怎么使用. 以管理员身份运行命令行程序,在搜索框输入[cmd],右键点击出现[以管理员身份运行].(否则在win10下面最 ...

  2. 使用windows自带的磁盘测速工具对硬盘进行测速——从此无需额外下载第三方硬盘测速工具

    文章目录 1. 以管理员身份运行PowerShell 2. 对系统盘(C盘)进行测速 3. 对某一指定的硬盘分区进行测速 1. 以管理员身份运行PowerShell 鼠标右键单击屏幕左下角的Windo ...

  3. linux下磁盘测速,linux下磁盘测速工具

    fio 是最佳磁盘性能测试工具,磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 1.测试顺序读性能 fio –filename=/data/test.io -iod ...

  4. linux下磁盘测速工具

    fio 是最佳磁盘性能测试工具,磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 1.测试顺序读性能 fio --filename=./test -iodepth=6 ...

  5. 硬盘读写测试工具_硬盘测速工具:Blackmagic Disk Speed Test Mac

    Blackmagic Disk Speed Test for Mac是Mac上检测硬盘功能的硬盘测速工具,使用disk speed test mac可以检测并验证你的硬盘性能,以及硬盘读入和读出的能力 ...

  6. Linux系统调优详解(十二)——IO调优之磁盘测速

    今天继续给大家介绍Linux运维相关知识,本文主要内容是IO调优,测试对磁盘的速度. 在进行Linux系统调优的时候,我们需要对当前系统的硬盘读写速度进行测试.此时,我们可以选择使用hdparm命令或 ...

  7. Linux Command iperf3网络测速工具

    Linux Command iperf3网络测速工具 文章目录 Linux Command iperf3网络测速工具 1. 简介 2. 安装 3. 功能 4. 参数 5. 示例 5.1 测试TCP吞吐 ...

  8. win和linux下的磁盘测速(读写速度)

    win和linux下的磁盘测速(读写速度)1 - 命令行工具测速 后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速 一.linux 下磁盘测速 1. 首先找到都有那些磁盘df命令(di ...

  9. 电脑测速软件_不服跑个分!常见固态硬盘测速工具性价比盘点(上)

    尽管不像CPU的核心或线程数量那样直观,固态硬盘性能在近几年电脑硬件中确实增长迅速.不同类型的测速软件也是五花八门,不服跑个分之后,我们能从分数中得到什么?又会因为这次跑分对硬盘产生多少写入量? 笔者 ...

  10. 查看网络抖动_Linux下3种常用的网络测速工具

    大家好,我是良许. 不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生.本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络 ...

最新文章

  1. case 语句不跳转,死循环
  2. [PM Tools]软件项目进度跟踪表v4.0
  3. java多字段排序,Java8对多个字段排序
  4. 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码
  5. 前端程序升级linux方案,开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)...
  6. 99.6%屏占比 vivo NEX 3升级版入网:865+55W快充
  7. Console.log对象显示
  8. 用每日新闻预测金融市场变化
  9. Springmvc源码分析之dispatcherServlet
  10. 如何准备软件评测师考试
  11. CHIP-seq流程学习笔记(11)-使用GSEA软件进行GSEA分析
  12. C#-WinForm-打印控件
  13. 【复习】物联网导论知识梳理
  14. 微信公众号访问 ssm框架根目录下MP_verify_xxxxxx.txt的解决方法
  15. H5viedo标签播放*.Mp4听得到音频却不显示视频的解决办法
  16. python 网络 select
  17. 解忧云SMS短信服务平台系统 短信发送系统源码 全解密随时可以二开无后门
  18. Java网课|apiscanner
  19. MBR膜是什么?起到哪些用途?-世来福
  20. 从事计算机行业考MBA有用吗,什么行业需要考mba

热门文章

  1. PMP-项目沟通管理
  2. [论文解读] Bridging Machine Learning and Logical Reasoning by Abductive Learning
  3. 【组合优化】旅行商问题Traveling Salesman Problem(TSP)-概述
  4. 16种系统测试方法概念+测试要点
  5. 阿里云docker提交及删除入门操作
  6. 人脸关键点检测——dlib
  7. 电脑本地连接,电脑出现多个“本地连接”的解决方法
  8. M27C64A引脚说明
  9. 移动平均法,加权平均法
  10. hdoj 2122 Ice_cream’s world III【最小生成树】