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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FDD与TDD的区别

    FDD与TDD的区别LTE通常分为FDDLTE和TDDLTEFDD,频分双工(FrequencyDivisionDuplexing)我和你通信,像广播一样,只能我说你听,是单工;像对讲机一样,同一时间只能一方说,另一方听,就是半双工;如果双方可以同时说和听,就是全双工。TDD:收发共用一个射频频点,上、下行链路使用不同的时隙来进行通信FDD:收发使用不同的射频频点来进行通信…

    2022年6月11日
    39
  • cmd下无法切换盘符[通俗易懂]

    cmd下无法切换盘符[通俗易懂]在cmd命令提示符窗口无法切换盘符?因为切换盘符不需要使用cd直接盘符加冒号就可以切换盘符

    2022年10月3日
    3
  • linux关闭防火墙或开启防火墙命令_linux防火墙怎么关闭

    linux关闭防火墙或开启防火墙命令_linux防火墙怎么关闭在linux中防火墙的开启和关闭是可以通过命令来执行的,那么具体是哪个命令呢?下面由学习啦小编为大家整理了linux关闭防火墙的相关命令,希望对大家有所帮助。1.Linux关闭防火墙命令1)永久性生效,重启后不会复原开启:chkconfigiptableson关闭:chkconfigiptablesoff2)即时生效,重启后复原开启:serviceiptablesstart关闭:s…

    2025年9月22日
    6
  • [Java web]– spring3(2)「建议收藏」

    [Java web]– spring3(2)「建议收藏」1.复杂对象的创建:不能直接new的对象,需要一个相对复杂的创建过程。  :FactoryBean===============================================================================================2.复杂对象的创建流程:  2.1 定义类:implements FactoryBean&l…

    2025年9月29日
    4
  • 李林峰 netty_逆向工程权威指南

    李林峰 netty_逆向工程权威指南第1章Java的I/O演进之路第2章NIO入门2.3NIO编程第4章TCP粘包/拆包问题的解决之道4.1TCP粘包/拆包4.1.1TCP粘包/拆包问题说明4.1.2TCP粘包/拆包发生的原因 应用程序write写入的字节大小大于套接口发送缓冲区的大小 进行MSS大小的TCP分段 以太网的帧playload大小MTU进行IP分片…

    2022年9月27日
    4
  • Linux 软件源设置

    Linux 软件源设置

    2022年1月25日
    38

发表回复

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

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