当GetWindowText获取不到标题时可以用SendMessage
GetWindowText所有父窗口标题基本可以获取到,
但是当获取父窗口下的子窗口控件标题文本时有时候就没那么好用了,
这个时候可以通过SendMessage发送消息来获取,也很简单,C/C++代码贴出来:
#include <iostream>
#include <Windows.h> using namespace std; char* GetWndText(HWND hWnd); int main(void)
{
// 演示使用的一个画板的句柄
HWND hPaint = (HWND)0x1E079E;
cout << GetWndText(hPaint) << endl;
system("pause");
return ;
} char* GetWndText(HWND hWnd)
{
// 发送WM_GETTEXTLENGTH消息获取控件文本长度
int len = SendMessageA(hWnd, WM_GETTEXTLENGTH, , ) + ;
// new一块len大小的内存
char *title = new char(len);
// 初始化内存为0
memset(title, , len);
// 发送WM_GETTEXT消息获取控件文本
SendMessageA(hWnd, WM_GETTEXT, len, (LPARAM)title);
return title;
}
效果图:

当GetWindowText获取不到标题时可以用SendMessage的更多相关文章
- Swift3.0 iOS获取当前时间 - 年月日时分秒星期
		
Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...
 - [Q]“获取AutoCAD安装信息时失败...”解决方法
		
“获取AutoCAD安装信息时失败...”解决方法:在“setup.exe”上右键,以管理员权限运行即可.
 - 第五篇 - Selenium突破反爬获取qq邮件标题
		
from selenium import webdriver from selenium.webdriver import ActionChains #1.打开登陆页面 wd = webdriver. ...
 - C# 获取媒体文件播放时长
		
引用: Interop.Shell32.dll 方法: /// <summary> /// 获取媒体文件播放时长 /// </summary> /// <param na ...
 - PHP 获取给定时间的周日时间或月末时间或每天
		
//获取给定时间的周日时间或月末时间或每天 private function endDate ($time, $type = 1, $openTime = '20:00:00') { if ($typ ...
 - c#获取Amr文件的时长(毫秒)亲测有效
		
/// <summary> /// c#获取Amr文件的时长(毫秒) /// </summary> /// <param name="fileName" ...
 - (转)获取android源码时repo的错误
		
获取android源码时repo的错误 今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/man ...
 - 为什么button在设置标题时要用一个方法,而不像lable一样直接用一个属性
		
为什么button在设置标题时要用一个方法.而不像lable一样直接用一个属性 原因是有时我们对 button做一次点击,须要改变button的标题.仅仅实用方法才干做到,而label是标签 ...
 - java获取音频文件播放时长
		
方法一: 在项目开发过程中,需要获取音视频文件时长.查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下: The JAVE (Java Audio Video Encoder) li ...
 
随机推荐
- HTTP的学习记录(二)头部
			
本文主要讲一些 HTTP头部的信息 首先看一段 惊为天人 的文章. 来自于 <淘宝技术这十年> 你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com.这时你 ...
 - Python网络爬虫(二)
			
Urllib库之解析链接 Urllib库里有一个parse这个模块,定义了处理URL的标准接口,实现 URL 各部分的抽取,合并以及链接转换.它支持如下协议的 URL 处理:file.ftp.goph ...
 - noip2018复习计划啊
			
需要复习的算法额: exgcd CRT INV dij spfa(~) 矩阵快速幂~高斯消元 tarjan(scc,bcc) treap splay 线段树 dp(决策单调,斜率,四边形不等式) rh ...
 - mysql隔离级别与锁,接口并发响应速度的关系(2)
			
innoDB默认隔离级别 mysql> SELECT @@tx_isolation; +-----------------+ | @@tx_isolation | +-------------- ...
 - quartz任务调度初次使用记录
			
近期公司开发的数据交换系统嵌入了quartz任务调度功能,大概了解了任务调度的整个流程,项目中需要用到它来进行定时任务操作,对数据定时检查以及及时交换. Quartz是OpenSymphony开源组织 ...
 - web 单例 多例
			
单例多例需要搞明白两个问题:1. 什么是单例多例:2. 如何产生单例多例:3. 为什么要用单例多例4. 什么时候用单例,什么时候用多例:1. 什么是单例多例:所谓单例就是所有的请求都用一个对象来处理, ...
 - Mybatis-Plus使用全解
			
前言 之前写了<SpringBoot | 第九章:Mybatis-plus的集成和使用>一文,只是简单的使用条件构造器列举了一些通用的CURD操作.本人也想写一篇通用的关于mybatis- ...
 - Docker | 第五章:构建自定义镜像
			
前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时 ...
 - postgresql安装,java简单使用postgresql
			
一 整合 由于本人的学过的技术太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的github项目地址 https://github.com/247292980/spri ...
 - U盘安装Ubuntu15.04 出现boot failed: please change disks and press a key to continue
			
1.根据国内的教程,用Ultraiso制作了一个Ubuntu15.04的U盘启动盘,在装系统的时候提示如下错误:boot failed: please change disks and press a ...