VC Windows API获得桌面所有窗口句柄的方法

VCWindowsAPI应用之GetDesktopWindow——获得桌面所有窗口句柄的方法WindowsAPIWindows这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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(256),256);

            //获得窗口标题
            CString strWindowText = _T("");
            ::GetWindowText(pWnd->GetSafeHwnd(),strWindowText.GetBuffer(256),256);

            //继续下一个子窗口
            pWnd = pWnd->GetWindow(GW_HWNDNEXT);
        }

    return 0;
}

推荐:http://www.cnblogs.com/roucheng/p/3456005.html

http://www.cnblogs.com/roucheng/p/wendang.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120553.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTTP中的Accept-Encoding、Content-Encoding、Transfer-Encoding、Content-Type[通俗易懂]

    HTTP中的Accept-Encoding、Content-Encoding、Transfer-Encoding、Content-Type[通俗易懂]AcceptEncoding和ContentEncodingAcceptEncoding和ContentEncoding是HTTP中用来对采用何种压缩格式传输正文进行协定的一对header。

    2022年7月1日
    24
  • pdf.js使用方法「建议收藏」

    pdf.js使用方法「建议收藏」项目中显示pdf的功能,浏览过不少的技术帖,都不太理想,花了点时间研究了下pdf.js正确使用方法,总结下:1.防止自己忘记2.工作留有痕迹3.供大家参考借鉴pdf.js:将PDF文件解析后生成一张.png图片,利用canvas元素显示在页面上,此方法不推荐使用,呈现在页面上的pdf会模糊,目前没有找到有效解决办法,给爱钻研的小伙伴提供个思路,在pdf.js官网上有…

    2022年7月11日
    17
  • java中static归纳总结

    java中static归纳总结在《Java编程思想》P86页有这样一段话:  “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”  这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:  方便在没有…

    2022年7月17日
    14
  • kalman滤波融合原理及其matlab仿真「建议收藏」

    kalman滤波融合原理及其matlab仿真「建议收藏」1、kalman原理卡尔曼滤波是一种递推式滤波方法,不须保存过去的历史信息,新数据结合前一刻已求得的估计值及系统本身的状态方程按一定方式求得新的估计值。1.1、线性卡尔曼假设线性系统状态是k,卡尔曼原理可用以下五个公式表达:X(k|k-1)=AX(k-1|k-1)+BU(k)………..(1)P(k|k-1)=AP(k-1|k-1)A’+Q…………

    2022年5月28日
    45
  • virus.win32.parite.h病毒查杀

    virus.win32.parite.h病毒查杀virus.win32.parite.h病毒查杀第一步,病毒不会无缘无故的出现,一般是有病毒下载器(通常蛰伏在流氓软件中),或者是有后门病毒将这些病毒下载下来。用优化大师或金山或360都行,流氓软件清除工具(360插件扫描和***查杀中部分选项,注意不要一下子处理威胁,要选择流氓软件、后门项目处理)第二步,要下载两个专杀(绿盟有打包的,也可以自己一个个找)1、北信源Win32…

    2022年7月25日
    7
  • Unity AssetBundle

    Unity AssetBundle#AssetBundle作用原理把资源导出成一种叫做AssetBundle的文件,然后打包后可以在Unity程序运行的时候再加载回来用。AssetBundle是采取某一种压缩方式压缩成的资源文件。节省存储空间,控制游戏包的大小,实现游戏的热更新。AssetBundle文件分类AssetBundle文件可以分为两类:序列化文件(serializedfile)和资源文件(resource…

    2022年6月24日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号