背景:
新人一枚,目前在学习win32编程中,发现有时会用到VS自带的Spy++,所以看看能不能自己写个,目前实现了部分功能。
先上vs自带的spy++:
VS的spy++
如图,点击查找程序工具有点的图标,拖动到任意位置,下面会显示关于该窗口的一些信息。
自己的spy++(只有部分功能):
目前实现了遍历所有窗口,但是和vs自带的相比,还有感觉少点,其次,最主要的就是实现了鼠标拖动显示窗口信息。
遍历窗口信息:
自己写的递归把所有窗口遍历出来
[C++] 纯文本查看 复制代码//通过递归遍历所有窗口的子窗口
void CMySpyDlg::SubWindowInfo(HWND hwnd, HTREEITEM hTreeItem)
{
HWND hChildWnd = ::GetWindow(hwnd, GW_CHILD);
if (hChildWnd == NULL)
{
return;
}
do
{
//获取窗口标题
char strWindowText[MAX_PATH] = { 0 };
::GetWindowText(hChildWnd, strWindowText, MAX_PATH);
//获取窗口类名
char strWindowClassName[MAX_PATH] = { 0 };
::GetClassName(hChildWnd, strWindowClassName, MAX_PATH);
//将窗口句柄、窗口标题、窗口类名格式化
CString strFmt;
strFmt.Format("窗口 %08X %s %s", hChildWnd, strWindowText, strWindowClassName);
//显示到树控件
HTREEITEM hTreeNode = m_TreeCtrl.InsertItem(strFmt, hTreeItem);
m_TreeCtrl.SetItemData(hTreeNode, (DWORD_PTR)hwnd);
SubWindowInfo(hChildWnd, hTreeNode);
hChildWnd = ::GetWindow(hChildWnd, GW_HWNDNEXT);
} while (hChildWnd != NULL);
}
查找窗口:
其实就是调用的api,通过鼠标位置来进行捕获窗口,进而显示窗口信息。
最后:
本人第一次发帖,知道好些东西没说清楚,但是又实在不知道怎么用文字描写清楚,如果又感兴趣的,可以共同讨论。欢迎指教。
编译环境:VS2015
链接:https://pan.baidu.com/s/1G79r2eEeFxgN40WidEoZ0g提取码:gofy
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!603313839@qq.com
2. 请您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源
3. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
4. 不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
5. 不保证所有资源都完整可用,不排除存在BUG或残缺的可能,由于资源的特殊性,下载后不支持退款。
6. 站点所有资源仅供学习交流使用,切勿用于商业或者非法用途,与本站无关,一切后果请用户自负!