首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Windows通过FindWindow控制其他程序的窗口

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

作者头像
全栈程序员站长
发布2022-09-21 10:12:52
发布2022-09-21 10:12:52
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
#include <windows.h>
#include <iostream>
#include <stdlib.h>

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);

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170219.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档