前言:
做客户端开发的很多时候,我们需要查看别人的客户端里面嵌入的网页,查看里面的JS等等,于是就写了一个简单的工具来获取这些嵌入IE的客户端使用的地址。原理:
开启一个后台线程,不断获取当前鼠标所在位置的窗口句柄,通过这个句柄判断窗口class是不是IE的Internet Explorer_Server,然后通过COM接口来获取IE对象,通过接口获取其内部链接的URL地址。为了提高效率,使用快捷键来捕获和停止捕获。使用时,Alt+B开启捕获,移动鼠标到IE网页上面后就会获得地址了,然后Alt+S停止捕获,就可以去复制链接的URL了。
<span style="font-family: Arial, Helvetica, sans-serif;">// MainDlg.h : interface of the CMainDlg class</span>
//
/
#pragma once
#include <string>
using std::wstring;
#define WM_GETNEW_WND WM_USER+100
#define WM_HOTKEY_BASE 100
inline bool operator != (const RECT& rc1, const RECT& rc2)
{
return ((rc1.left!=rc2.left)
|| (rc1.top!=rc2.top)
|| (rc1.right!=rc2.right)
|| (rc1.bottom!=rc2.bottom));
}
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
static bool s_bThreadSwitch;
static bool s_bRunning;
static HBRUSH s_hFrameBrush;
HWND m_hEditWnd;
enum { IDD = IDD_MAINDLG };
CMainDlg()
:m_hEditWnd(NULL)
{
}
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_GETNEW_WND, OnGetNewWindow)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
MESSAGE_HANDLER(WM_HOTKEY, OnHotKey)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
END_MSG