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

Windows通过FindWindow控制其他程序的窗口如上代码所示通过调用windows的系统函数FindWindow

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

#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控制其他程序的窗口

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

如上代码所示通过调用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.net/170219.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • yum安装与卸载软件常见命令「建议收藏」

    yum安装与卸载软件常见命令「建议收藏」1.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。安装的命令是,yuminstall~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断;删除的命令是,yumremove~,同安装一样,yum也会查询数据库,给出解决依赖关…

    2022年6月12日
    40
  • python的tkinter模块的导入_numpy scipy

    python的tkinter模块的导入_numpy scipy在python项目使用cxfreeze进行打包的时候,如果脚本里包括numpy的引用时,在打包时会报importError:cannotimportname’_methods’from’numpy.core’的错误,这时,在打包的setup.py文件中加入整个包numpy的引用即可packages=[“numpy”]options={“build_exe…

    2022年8月30日
    0
  • @RestController 和 @Controller 的区别[通俗易懂]

    @RestController 和 @Controller 的区别[通俗易懂]@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面理解下面的注解哦。@ResponseBody表示该方法的返回结果直接写入HTTPrespons…

    2022年6月15日
    53
  • read digest_view the readme file

    read digest_view the readme file一、本文大纲系统调用的两种方式:中断门和快速调用_KUSER_SHARED_DATA结构使用cpuid指令判断当前CPU是否支持快速调用3环进0环需要更改的4个寄存器以ReadProcessMemory为例说明系统调用全过程重写ReadProcessMemory和WriteProcessMemoryint0x2e和sysenter都做了什么工作?二、中断门和快速调用以我的理解,系统调用,即从调用操作系统提供的3环API开始,到进0环,再到返回结果到3环的全过程

    2022年9月12日
    0
  • 如何利用ipad随时随地开发代码

    如何利用ipad随时随地开发代码今天,我将向你们展示如何设置iPad,让它成为你们的开发环境。虽然我不建议你用它来执行非常大的项目,但我可以肯定地说,小项目也可以很容易地执行。您可以自己继续测试环境的限制。首先,我们将使用AppStore上的一款iPhone和iPad都可以使用的免费应用程序。该应用程序名为iSHshell,运行Linux操作系统。因此,如果您不习惯Linux命令,我建议您学习基础命令。我还建议您在继续学习本教程之前学习如何使用vim,因为我们将在iPad上使用vim作为我们的主要代码编辑器。Vim有一个陡峭的学.

    2022年5月24日
    33
  • 自定义web接收推送_Java Web

    自定义web接收推送_Java Webhttps://www.webjars.org/提供了很多js的jar,但是有时候有些js没有,我们也想打成jar,那怎么办?我们以jquery3.4.1版本为例子开始1.创建如下结构pom文件内容如下:<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http://maven.apache….

    2022年10月28日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号