获得当前窗口的hwnd的方法整理
获得当前窗口的hwnd的方法整理
我已知获取hwnd的方法有如下一些:
HWND GetActiveWindow(VOID);
GetActiveWindow()
GetTopWindow()
AfxGetMainWnd()->m_hWnd//得到自身的。
HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");//查找窗口
GetSafeHwnd()
GetForegroundWindow()
从CWnd类继承的类都有一个m_hWnd的公共成员变量,如果是从CWnd继承过来的窗口直接用HWND操作符就行了
主窗口的 指针保存在CWinThread::m_pMainWnd中,调用 AfxGetMainWnd实现。
AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED); //使主窗口最大化.
1. m_hWnd和GetSafeHwnd()这是本程序的hwnd,而我要的是任意一个当前激活的程序窗口的hwnd
2. GetActiveWindow(), 这个也是获得与本程序有关线程的程序窗口的hwnd
比如本程序开了另一个窗口,我想可以用这个函数获得那个窗口的hwnd
3. 而FindWindow()就更有点问题了,它必须要知道窗口的名字。而要的是一个未知的窗口。
最后我用了::GetForegroundWindow(),它倒是可以获得当前窗口的hwnd,但它甚至得到了desktop的hwnd,而我在实际操作过程中不要desktop这个hwnd,我只要当前窗口的hwnd。如何做?
根据敞口
wstring GetProcessNameByHandle(HWND nlHandle)
{
wstring loStrRet=L"";
//得到该进程的进程id
DWORD ldwProID;
GetWindowThreadProcessId(nlHandle,&ldwProID);
if(0==ldwProID)
return L"";
HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(handle==(HANDLE)-1)
{
//AfxMessageBox(L"CreateToolhelp32Snapshot error");
return false;
}
PROCESSENTRY32 procinfo;
procinfo.dwSize = sizeof(PROCESSENTRY32);
BOOL more=::Process32First(handle,&procinfo);
while(more)
{
if(procinfo.th32ProcessID==ldwProID)
{
loStrRet=procinfo.szExeFile;
CloseHandle(handle);
return loStrRet;
}
more=Process32Next(handle,&procinfo);
}
CloseHandle(handle);
return loStrRet;
}
获得当前窗口的hwnd的方法整理相关推荐
- 多普达硬启动方法整理
多普达硬启动方法整理 老张手机网 / 2010-04-16 [大] [中] [小] 硬起前注意事项: 1.备份手机里的资料,如:联系人.彩信.短信.手机的资料等信息,平时养成定期备份资料的习惯: 2. ...
- 将窗口置顶的方法:SetWindowPos、AttachThreadInput、SwitchToThisWindow
将窗口置顶的方法:SetWindowPos.AttachThreadInput.SwitchToThisWindow [转]http://hi.baidu.com/neil_danky/item/f9 ...
- 零基础快速学习Java技术的方法整理
在学习java技术这条道路上,有很多都是零基础学员,他们对于java的学习有着很多的不解,不知怎么学习也不知道如何下手,其实Java编程涉及到的知识点还是非常多的,我们需要制定java学习路线图这样才 ...
- js中修改this的指向方法整理
JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,Ja ...
- 【方法整理】Oracle 获取trace跟踪文件名的几种常用方式
[方法整理]Oracle 获取trace跟踪文件名的几种常用方式 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...
- python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)
python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...
- C# Winform应用程序占用内存较大解决方法整理(转)
C# Winform应用程序占用内存较大解决方法整理(转) 参考文章: (1)C# Winform应用程序占用内存较大解决方法整理(转) (2)https://www.cnblogs.com/xcsn ...
- js DOM Element属性和方法整理
js DOM Element属性和方法整理 节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. ...
- iframe 父窗口和子窗口相互的调用方法集锦
一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></i ...
最新文章
- 带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...
- 集群NAS+SSD如虎添翼
- Python中string、json、bytes的相互转换
- 数据库开发这点事 中文PDF下载
- My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数
- Apache2 实现https访问http服务
- 恒生电子笔试(笔试流程,笔试介绍,题型,以往笔试题)
- G.8032协议 ERPS
- 刑法285.286.287 条
- 轻量级配置的登录管理器选择---Silm[zt]
- Kaggle案例精选——电信客户流失预测(Telecom Customer Churn Prediction)Part One:数据说明;数据导入、处理;数据总览;描述性分析
- 微信公众帐号开发教程第8篇-QQ表情的发送与接收
- Win10 1709 无法访问局域网共享问题及解决
- 怎样在Unity里面进行代码的查错
- 2017全国高校计算机大赛,我校在2017中国高校计算机大赛中获全国高校银奖
- r语言和python的区别-Python和R语言之分析对比
- 如何更高效、系统地学习3D视觉?
- 传奇3的WIL文件格式
- 进程冻结(freezing of task)