获得当前窗口的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的方法整理相关推荐

  1. 多普达硬启动方法整理

    多普达硬启动方法整理 老张手机网 / 2010-04-16 [大] [中] [小] 硬起前注意事项: 1.备份手机里的资料,如:联系人.彩信.短信.手机的资料等信息,平时养成定期备份资料的习惯: 2. ...

  2. 将窗口置顶的方法:SetWindowPos、AttachThreadInput、SwitchToThisWindow

    将窗口置顶的方法:SetWindowPos.AttachThreadInput.SwitchToThisWindow [转]http://hi.baidu.com/neil_danky/item/f9 ...

  3. 零基础快速学习Java技术的方法整理

    在学习java技术这条道路上,有很多都是零基础学员,他们对于java的学习有着很多的不解,不知怎么学习也不知道如何下手,其实Java编程涉及到的知识点还是非常多的,我们需要制定java学习路线图这样才 ...

  4. js中修改this的指向方法整理

    JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,Ja ...

  5. 【方法整理】Oracle 获取trace跟踪文件名的几种常用方式

    [方法整理]Oracle 获取trace跟踪文件名的几种常用方式 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  6. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)

    python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) 参考文章: (1)python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色) (2)https://www.cnblog ...

  7. C# Winform应用程序占用内存较大解决方法整理(转)

    C# Winform应用程序占用内存较大解决方法整理(转) 参考文章: (1)C# Winform应用程序占用内存较大解决方法整理(转) (2)https://www.cnblogs.com/xcsn ...

  8. js DOM Element属性和方法整理

    js DOM Element属性和方法整理 节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. ...

  9. iframe 父窗口和子窗口相互的调用方法集锦

    一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></i ...

最新文章

  1. 带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning
  2. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...
  3. 集群NAS+SSD如虎添翼
  4. Python中string、json、bytes的相互转换
  5. 数据库开发这点事 中文PDF下载
  6. My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数
  7. Apache2 实现https访问http服务
  8. 恒生电子笔试(笔试流程,笔试介绍,题型,以往笔试题)
  9. G.8032协议 ERPS
  10. 刑法285.286.287 条
  11. 轻量级配置的登录管理器选择---Silm[zt]
  12. Kaggle案例精选——电信客户流失预测(Telecom Customer Churn Prediction)Part One:数据说明;数据导入、处理;数据总览;描述性分析
  13. 微信公众帐号开发教程第8篇-QQ表情的发送与接收
  14. Win10 1709 无法访问局域网共享问题及解决
  15. 怎样在Unity里面进行代码的查错
  16. 2017全国高校计算机大赛,我校在2017中国高校计算机大赛中获全国高校银奖
  17. r语言和python的区别-Python和R语言之分析对比
  18. 如何更高效、系统地学习3D视觉?
  19. 传奇3的WIL文件格式
  20. 进程冻结(freezing of task)

热门文章

  1. 超详细【Uboot驱动开发】(一)uboot基础了解
  2. 橙色金属 联想K900橙色开启预售
  3. 首款Intel双核挑衅四核 联想K900评测
  4. 谷歌、微软、Meta?谁才是 Python 最大的金主?
  5. vue电商项目(二)——完成Home页面
  6. 什么是畏缩型性格?如何改变畏缩型性格?
  7. u盘乱码怎么办?看他怎么恢复的(不花一分钱)
  8. 芯片STC89C52 (宏晶STC)
  9. Cisco AP-如何识别思科胖瘦AP
  10. Echarts 水波图实现