vc 获取窗口标题GetWindowText
今天在写一个模块,具体功能是想时刻监控用户当前活动窗口,需要获取窗口标题以及其它相关信息,记得API GetWindowText就是用来做这个的,结果试了半天,有的获取成功了有的获取失败了,而且有关汉字的标题获取不到。找了好半天资料方法都试还是行不通。最后还得仔细看MSDN,偶尔灵感突现,抱着试试的心态试一下ANSI版本的(以前一值用的是Unicode版本,感觉这两个版本是一样的),结果奇迹终于出现了----OK了。看来有时候还是有区别的。具体我知道的有两种方法可以获取窗口标题,除了上面的API,还可以向窗口发送一个WM_GETTEXT也是可以的。
下面贴出关键代码:
/代码不严谨,需要对返回值做判断
while (1)
{
HWND hWindow = GetForegroundWindow();
DWORD dwProcess;
LRESULT result = 0;
DWORD dwForeID = GetWindowThreadProcessId(hWindow, &dwProcess); HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcess); WCHAR wszProcessPath[MAX_PATH] = { 0 };
DWORD dwSize = MAX_PATH;
QueryFullProcessImageNameW(hProcess, 0, wszProcessPath, &dwSize);
printf("processName:%ws\n", wszProcessPath);
CHAR wszTitle[MAX_PATH] = { 0 };
//利用window消息机制也是可以的
//result = SendMessageA(hWindow, WM_GETTEXT, MAX_PATH, (LPARAM)wszTitle);
result = GetWindowTextA(hWindow, wszTitle, MAX_PATH); printf("title:%s \nProcessID:%d \n\n", wszTitle, dwProcess); Sleep(1000);
}
vc 获取窗口标题GetWindowText的更多相关文章
- VC++获取IDC_EDIT的7种方法
VC++获取IDC_EDIT的7种方法 http://blog.csdn.net/baizengfei/article/details/7997618 //第一种方法 int number1, num ...
- VC获取屏幕分辨率及大小相关(转)
vc得到屏幕的当前分辨率方法: 1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystem ...
- vc 获取当前时间 (zhuan)
vc 获取当前时间(2010-02-10 11:34:32) http://wenku.baidu.com/view/6ade96d049649b6648d7475e.html 1.使用CTime类 ...
- C#是怎么获取窗口标题的
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:C#是怎么获取窗口标题的.
- 转:VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics>和<VC++获取屏幕大小第二篇物理大小GetDeviceCaps 上>和<VC++获取屏幕大小第三篇物理 ...
- VC 获取指定文件夹路径的方法小结
VC获取指定文件夹路径 flyfish 2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath( ...
- vc 获取 硬盘序列号 和 cpu
vc 获取 硬盘序列号 和 cpu 唯一iD的方法?如题---------网上找来很多资料 也没找到, 要支持xp win7 32/64 系统下都能获取 硬盘序列号 和cpu ID 哪位朋友帮帮忙: ...
- [转]VC++获取文件大小集锦
方法一: WIN32_FIND_DATA fileInfo; HANDLE hFind; DWORD fileSize; const char *fileName = 文件的路径及名字; hFind ...
- VC获取文件后缀名
VC获取文件后缀名 2011-07-28 10:30:50| 分类: Visual C++ and O | 标签: |举报 |字号大中小 订阅 1. CString GetSuffix(C ...
随机推荐
- NX二次开发-UFUN移动工程图视图UF_DRAW_move_view
#include <uf.h> #include <uf_draw.h> #include <uf_drf.h> #include <uf_obj.h> ...
- NX二次开发-UFUN将建模绝对空间中的点映射到工程图坐标UF_VIEW_map_model_to_drawing
#include <uf.h> #include <uf_ui.h> #include <uf_draw.h> #include <uf_view.h> ...
- Codeforces703D-Mishka and Interesting sum-离线树状数组
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门 原题目描述在最下面. 询问一个区间内出现次数为偶数次的数字的异或和. 思路: 先求出区间异或前缀和,其实就是出现次 ...
- 转:手机端html5触屏事件(touch事件)
touchstart:触摸开始的时候触发 touchmove:手指在屏幕上滑动的时候触发 touchend:触摸结束的时候触发 而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点( ...
- java 8 lambda函数
1 为什么要引进lambda函数 可以简化编码,将事情更多的交给编译器,让编译器帮我们推断我们写的代码的完整形式. 2 lambda函数的语法 2.1 -> (arg1, arg2) -> ...
- 《DSP using MATLAB》Problem 8.45
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 7-MySQL高级-主从-1
1. 主从同步的定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制是异步进行的,所 ...
- 1-MySQL高级-视图
视图 1. 问题 对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来非常麻烦 解决办法:定义 ...
- palindrome 回文 /// Manacher算法
判断最长不连续回文 #include <bits/stdc++.h> using namespace std; int main() { ]; while(gets(ch)) { ],an ...
- c++ socket 出现绑定失败的一个特殊原因。Bind failed Error:10049
这个问题,客户那边出现这种情况已经将近一年时间, 一直都得不到很好的解决,我提供出去的动态库可以确保没有问题,因为除了这家公司,其他有好几家公司都在用的,都是很正常的,但是这家公司很奇怪,不,应该说这 ...