VC Windows API获得桌面所有窗口句柄的方法
VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法
Windows API
Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。
GetDesktopWindow
函数功能:该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。
函数原型:HWND GetDesktopWindow(VOID)
参数:无。
返回值:函数返回桌面窗口的句柄。
速查:Windows NT:3.1以上版本;Windows:95以上版本:;
头文件:Winuser.h;库文件:user32.lib。
【声明】
vb
Public Declare Function GetDesktopWindow Lib “user32” Alias “GetDesktopWindow” () As Long
vb_net
Public Declare Function GetDesktopWindow Lib “user32” Alias “GetDesktopWindow” () As Integer
c#
[DllImport(“user32.dll”, EntryPoint = “GetDesktopWindow”, CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr GetDesktopWindow();
【说明】
获得代表整个屏幕的一个窗口(桌面窗口)句柄
【返回值】
Long,桌面窗口的句柄
获得桌面所有窗口句柄的方法
创建项目
文件->新建->项目…
编写方法
// GetDesktopWindow.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#define _AFXDLL
#include <afxwin.h>
// 何问起 hovertree.com
//错误 1 error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version.
//Please #define _AFXDLL or do not use /MD[d] e:\programfilesx86\microsoftvisualstudio10\vc\atlmfc\include\afx.h 24 1 GetDesktopWindow int _tmain(int argc, _TCHAR* argv[])
{
//1.先获得桌面窗口
CWnd* pDesktopWnd = CWnd::GetDesktopWindow();
//2.获得一个子窗口
CWnd* pWnd = pDesktopWnd->GetWindow(GW_CHILD);
//3.循环取得桌面下的所有子窗口
while(pWnd != NULL)
{
//获得窗口类名
CString strClassName = _T("");
::GetClassName(pWnd->GetSafeHwnd(),strClassName.GetBuffer(),); //获得窗口标题
CString strWindowText = _T("");
::GetWindowText(pWnd->GetSafeHwnd(),strWindowText.GetBuffer(),); //继续下一个子窗口
pWnd = pWnd->GetWindow(GW_HWNDNEXT);
} return ;
}
推荐:http://www.cnblogs.com/roucheng/p/3456005.html
http://www.cnblogs.com/roucheng/p/wendang.html
VC Windows API获得桌面所有窗口句柄的方法的更多相关文章
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
C#使用Windows API实现桌面上的遮罩层(鼠标穿透) C#实现实现桌面上的遮罩层(鼠标穿透)主要通过一下几个API函数来实现:GetWindowLong,SetWindowLong,SetLa ...
- Windows api实现桌面任务栏隐藏\显示
//隐藏任务栏 HWND hWnd = ::FindWindow(TEXT("Shell_traywnd"),TEXT("")); ::SetWindowPos ...
- VC++ 实现简单的桌面截图
使用了EasyX图像库,使用方法请参考:VC++ 制作一个简易的控制台时钟应用 简单的桌面截图代码: ///////////////////////////////////////////////// ...
- 学习之路三十九:新手学习 - Windows API
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...
- Windows API 函数列表 附帮助手册
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...
- 在VBA中使用Windows API
VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个 ...
- c# 判断窗体是否永在最前(TopMost),调用windows API
许多程序都可以把自身的窗体设为最前显示状态,这个可以参考博客c#让窗体永在最前 调用windows api 将窗体设为topmost.那么如何判断桌面上的一个窗体是否为最前显示状态呢,不光是自己的程序 ...
- WinSpy涉及的windows api
WinSpy涉及的windows api WinSpy是仿造微软Spy++的开源项目,但只涉及Spy++的窗口句柄.窗口的属性.styles.类名子窗口.进程线程信息等查找功能.功能虽然不算强大,但涉 ...
- Windows API Finishing
input { font-size: 14px; height: 26px } td { border-style: none; border-color: inherit; border-width ...
随机推荐
- std::bind和std::function
std::bind 用于绑定一个函数,返回另外一种调用方式的函数对象 ,可以改变参数顺序 和个数,特别是在多线程的程序中,经常用它将函数进行包装,然后打包发送给工作线程,让工作线程去执行我们的任务. ...
- hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
今天使用ssh框架搭建的项目,进行查询和保存操作,使用的是 public Collection<T> getAllEntry() { return this.hibernateTempla ...
- 利用 a 标签自动解析 url
很多时候,我们有从 url 中提取域名,查询关键字,变量参数值等的需求,然而我们可以让浏览器方便地帮助我们完成这一任务而不用写正则去抓取.方法就是先创建一个 a 标签然后将需要解析的 url 赋值给 ...
- Html5 localstorage解决Ajax回退的坑
A页面通过ajax加载数据,并且是滚动加载效果,当滚动几个屏幕之后,进入新的链接页面B,再返回到A的时候,A页面的数据有需要重新加载,从头开始了,体验非常不好. 解决办法:1)hash:2)html5 ...
- jQuery插件实现图片展开效果,jquery.gallery。仿腾讯QQ空间说说图片展示效果。
公司的项目http://www.umfun.com/,有个说说的页面(和腾讯QQ空间说说一样),里面有个发表图片功能,上传完图片,需要点击展开的效果. 当时手里面事情比较多(公司就我一个前端),忙不过 ...
- 阿里云centos试用
今天体验了下阿里云的centos,起初用的官方推荐的putty方式来管理,全部使用命令行管理起来还是很别扭的. 后来通过百度了解到winscp,有了这个工具,管理起来就爽很多啦.整个centos的管理 ...
- JS - Object and Property的删除用法
在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...
- [转]两种Sigma-Delta ADC SNR仿真方法
假设现有一组Sigma-Delta ADC输出序列,下面将介绍两种计算出相应SNR的方法.其中由cadence导出数据的CIW窗口命令为:ocPrint(?output "输出目录/输出文件 ...
- Approvals for EBS 1.4 Now Available
If you haven't been following the excellent Workflow blog, you might have missed the announcement ab ...
- DMSFrame 之SqlCacheDependency(二)
上篇文章介绍的是通知模式的缓存机制,这里介绍的是数据库轮循模式处理,这种模式对SQL2005以下的支持还是比较好的 引擎源码如下: /// <summary> /// 轮循模式 /// 数 ...