2025年Windows通过FindWindow控制其他程序的窗口

Windows通过FindWindow控制其他程序的窗口include include include int main HWND h FindWindow NULL L 我的电脑 本地磁盘 D 我的电脑 std cout if h 最小化窗口 BOOL b CloseWindow h std cout 最大化窗口 ShowWindow h

#include 
#include
#include

int main()
{
HWND h = FindWindow(NULL, L"我的电脑"); //"本地磁盘 (D:)"、"我的电脑"
std::cout << h << std::endl;

if (h)
{
//最小化窗口
BOOL b = CloseWindow(h);
std::cout << "最小化窗口" << (b? "成功" : "失败") << std::endl;

最大化窗口
//ShowWindow(h, SW_SHOWMAXIMIZED);

///修改标题栏,居然可以
SetWindowText(h, L"哈哈哈~");
}

system("pause");
return 0;
}

如上代码所示通过调用windows的函数FindWindow,根据标题获取其他程序的句柄,然后做一些操作(例子中是调用CloseWindow最小化窗口)。

参考博文:http://hi.baidu.com/it_ibear/item/aa3e11f53d06760384d2785b

这篇参考文章较好,不仅讲了如何获取窗口句柄,还讲了如何获取窗口中的按钮、文本框的句柄,以及如何通过发消息修改和操作这些控件。用到的函数简单列出来:

CWnd *pwnd=pWnd->GetWindow(GW_CHILD);//枚举保存对话框的所有子控件

pwnd = pwnd->GetNextWindow(); //获取同一层的其他窗口

::GetClassName(pwnd->GetSafeHwnd(),buf,512);//得到枚举的控件是什么类型的
::SendMessage(pwnd->GetSafeHwnd(),WM_LBUTTONDOWN,0,0);
pwnd->SendMessage(WM_GETTEXT,sizeof(BUF)/sizeof(TCHAR),(LPARAM)(void*)BUF);
pedit->SendMessage(WM_SETTEXT,0,(LPARAM)filename);

编程小号
上一篇 2025-01-23 16:27
下一篇 2025-01-23 17:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/114352.html