EnumWindows的使用

EnumWindows 枚举所有顶层窗口 目录 一、EnumWindows介绍 二 枚举所有窗口,并将窗口信息,放置在列表中 2.1 窗口信息 2.2 枚举函数 2.3 枚举窗口,传入参数 一、EnumWindows介绍 BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam ); lpEnumFunc Type:WNDENUMPROC A pointer to an application-defined callback functio... 阅读详情

// 枚举窗口回调

public delegate int EnumWindowsProc(IntPtr hwnd, IntPtr lParam);

 

EnumWindowsProc callbackDelegate;

IntPtr callbackDelegatePointer;

StringBuilder windowName;

 

private void button9_Click(object sender, EventArgs e)

{

     callbackDelegate = new EnumWindowsProc(EnumWindowsCallbackProc);

     callbackDelegatePointer = Marshal.GetFunctionPointerForDelegate(callbackDelegate);

     // 需指定大小

     // 默认容量是 16, 默认的最大容量是 Int32.MaxValue

     windowName = new StringBuilder(80);

bool res = EnumWindows(callbackDelegatePointer, 0);

}

 

int index = 0;

public int EnumWindowsCallbackProc(IntPtr hwnd, IntPtr lParam)

{

++index;

// 获取窗体名称,并返回实际的字符串长度(不包含空终结符)

StringBuilder aa = new StringBuilder(1000);

GetClassName(hwnd,  aa, 256);

if (aa.ToString() == "menu_worker")

{

ShowWindow(hwnd, true);

}

return 1;

}

 

 

/*

*file:   ScreenControl.h

*desp:   full screen

*/

#ifndef _SCREENCONTROL_H_

#define _SCREENCONTROL_H_

#include "aygshell.h"

class ScreenControl

{

public:

/// <summary>

/// 全屏,参考:ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/apippc/html/ppc_aygshell_fsiq.htm

/// </summary>

/// <param name="hWnd">窗体句柄</param>

void FullScreen(HWND hWnd)

{  

   SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON );

}

/// <summary>

/// 扩张或者收缩窗体工作区

/// </summary>

/// <param name="hMainWnd">窗体句柄</param>

/// <param name="rtSubWnd">矩形区域</param>

/// <param name="bExpand">TRUE:扩张;FALSE:收缩</param>

void ExpandWindow(HWND hMainWnd, RECT rtSubWnd, bool bExpand=true)

{

   if (bExpand)

   {

    // 扩张窗体,扩展后的窗体所在区域覆盖了原来的主从窗体

    RECT rtMainWnd = {0};

    GetWindowRect(hMainWnd, &rtMainWnd);

    MoveWindow(hMainWnd,

     min(rtMainWnd.left, rtSubWnd.left),

     min(rtMainWnd.top, rtSubWnd.top),

     max(rtMainWnd.right, rtSubWnd.right),

     max(rtMainWnd.bottom, rtSubWnd.bottom),

     true);

   }

   else

   {

    // 收缩窗体

    MoveWindow(hMainWnd, rtSubWnd.left, rtSubWnd.top,

     rtSubWnd.right - rtSubWnd.left, rtSubWnd.bottom - rtSubWnd.top, true);

   }

}

/// <summary>

/// 隐藏或显示窗体

/// </summary>

/// <param name="lpText">窗体标题,ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/wceshellui5/html/wce50lrfFindWindow.htm</param>

/// <param name="bHide">TRUE:隐藏;FALSE:显现</param>

/// <returns>被隐藏窗体的工作区</returns>

RECT HideWindow(LPCTSTR lpText, bool bHide=true)

{    

   RECT rtSubWnd = {0};

   HWND hSubWnd = NULL;

   hSubWnd = FindWindow(lpText, NULL);

   if (NULL != hSubWnd)

   {

    GetWindowRect(hSubWnd, &rtSubWnd);

    if (bHide)

    {

     // Update window working area size

     //SystemParametersInfo(SPI_SETWORKAREA, 0, &m_rtNewDesktop, SPIF_UPDATEINIFILE);      

     ShowWindow(hSubWnd, SW_HIDE);

    }

    else

    {

     // Update window working area size

     //SystemParametersInfo(SPI_SETWORKAREA, 0, &m_rtOldDesktop, SPIF_UPDATEINIFILE);     

     ShowWindow(hSubWnd, SW_SHOWNORMAL);

    }

   }

   return rtSubWnd;

}

};

#endif

隐藏任务栏与菜单栏:

ScreenControl screenControl;     // 屏幕控制器

GetWindowRect(hWnd, &rtWnd);     // 获取当前窗体所在区域,留作恢复窗体时使用

screenControl.FullScreen(hWnd);

screenControl.ExpandWindow(hWnd, screenControl.HideWindow(TEXT("HHTaskBar"), TRUE));

screenControl.ExpandWindow(hWnd, screenControl.HideWindow(TEXT("MENU_WORKER"), TRUE));

恢复任务栏与菜单栏:

screenControl.HideWindow(TEXT("HHTaskBar"), FALSE);

screenControl.HideWindow(TEXT("MENU_WORKER"), FALSE);

screenControl.ExpandWindow(hWnd, gRect, false);

使用Win32 API EnumWindows函数在Delphi中枚举系统窗口 EnumWindows 是 Windows API 中的一个函数,用于枚举所有顶级窗口,并为每个窗口调用指定的回调函数。其函数原型如下:WNDENUMPROC lpEnumFunc, // 回调函数的地址LPARAM lParam // 用户提供的值传递给回调函数lpEnumFunc是一个指向回调函数的指针,这个回调函数必须被定义为接受两个参数:HWND和LPARAM类型的窗口句柄以及传递给 EnumWindows 的lParam。lParam是传递给回调函数的附加参数。 阅读详情

相关推荐

enumwindows 遍历窗口

enumwindows 遍历窗口 共三个工程 一个vc6 两个vs2008

使用 EnumWindows 找到满足你要求的窗口

在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWindows 这个 API 来枚举这些窗口。 本文介绍使用 EnumWindows 来枚举并找到自己关心的窗口(如 QQ/TIM 窗口)。 本文内容`EnumWindows`遍历所有的顶层窗口遍历具有指定类名或者标题的窗口 EnumWindows 你可以在微软官网了解到 EnumWindows。 要在 C# 代码中使...

walterlv - 吕毅 1万+

EnumWindows-枚举桌面窗口

用于枚举桌面窗口,选中指定窗口后可并保存为bmp

枚举窗口

枚举窗口 FindWindow: windows中可以使用FindWindow查找指定窗口: HWND WINAPI FindWindow( _In_opt_ LPCTSTR lpClassName,//窗口类名 _In_opt_ LPCTSTR lpWindowName//窗口名,标题 );lpClassName为注册窗口时的类名,如果为NULL,则匹配标题,返回值为句柄。类名窗口名可以

yangyang031213的博客 2933

Windows平台无人机仿真:从零搭建SITL环境与QGC联调

本文详细指导了在Windows平台上从零搭建无人机软件在环(SITL)仿真环境,并与QGroundControl(QGC)进行联调的完整流程。通过使用Cygwin工具链,开发者可以在没有实体硬件的情况下,模拟运行ArduPilot飞控,并通过MAVLink协议连接QGC地面站进行全功能测试,为无人机软件开发提供了一个安全、经济的虚拟沙盒环境。

weixin_29239279的博客 407

Windows server Database 2025 安装 i225/i226 网卡驱动

Windows server Database 2025 安装 i225/i226 网卡驱动 windows这比坏得很,intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持?他就纯粹恶心人。 之前已经安装过一次,但是今天database预览版一更新,又给我把网卡驱动杀了,气死,写一篇教程。 到这里就完成了,总之还是想辱骂windows,提供便捷的同时又人为制造困难,多少有点(隔壁linux内核直接自带全家桶了就一省心) 并且近年Intel的新U安装显卡驱动和普通声卡驱动都不会出声

低温热源的博客 1万+

CreateProcess EnumWindows 使用

CreateProcess、获取窗口句柄HWND CWND EnumWindows

梁中林 的专栏 2009

基于 OptiSystem 的掺铒光纤放大器(EDFA)分析

通过构建 EDFA 仿真模型,系统分析了铒离子掺杂半径、离子浓度、光纤长度及泵浦功率等关键参数对放大器增益和噪声特性的影响规律,为 EDFA 的优化设计提供了理论依据与仿真支撑。继续增大至 9μm,增益趋于稳定(约 19dB)。继续增加至 200mW,增益仅增加 2dB,表明泵浦功率存在阈值效应(约 100mW),超过后增益饱和明显。:作为增益介质,主要参数包括光纤长度(5~50m)、铒离子掺杂半径(1~10μm)、离子浓度(1×10²⁵~5×10²⁵m⁻³)、纤芯半径 2.2μm、数值孔径 0.24。

2501_91855190的博客 2674

使用 EnumWindows 找到满足你要求的窗口 - walterlv

使用 EnumWindows 找到满足你要求的窗口 - walterlv 原文:使用 EnumWindows 找到满足你要求的窗口 - walterlv 使用 EnumWindows 找到满足你要求的窗口 ...

weixin_30699235的博客 382

安卓直链APK安装拦截全解析:从Play Protect到厂商管控的应对指南

在移动应用分发领域,APK(Android Package)安装是开发者与用户交互的关键环节。其核心原理涉及安卓系统的安全沙箱机制与权限管理体系,旨在保护用户设备免受恶意软件侵害。这一机制的技术价值在于平衡了应用生态的开放性与安全性,但也在应用推广、企业内部分发等场景中带来了挑战。尤其在通过官网、广告等直链渠道分发APK时,常会遇到安装转化率骤降的问题。这背后主要受到Google Play Protect云端扫描、安卓系统安装权限模型演进(如Android 8.0+的安装源授权)以及设备制造商附加安全层(如

weixin_33894640的博客 467

《Cesium 基础知识点》- 申请 Cesium Ion 密钥

一、访问 https://cesium.com/ion/signin/tokens 二、登录/注册 三、申请 四、使用 // 密钥 let defaultAccessToken = 'your token string'; // 设置 Cesium.Ion.defaultAccessToken = defaultAccessToken; // 初始化 let viewer = new Cesium.Viewer('cesiumContainer', {}); ...

前端技术 2570

EnumWindows 使用

EnumWindows 用来列举屏幕上所有顶层窗口。MSDN原话:The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window。函数形式:BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // call

hairi的专栏 1万+

在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统

智能建筑能效优化是现代建筑管理的重要组成部分,旨在通过智能化手段降低能源消耗、减少碳排放并提高居住舒适性。通过Simulink进行智能建筑能效优化仿真,可以验证控制策略的有效性、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的智能建筑能效优化仿真。该系统能够模拟复杂的建筑环境,验证能效优化策略的有效性,并通过优化设计提高建筑的能源利用效率和居住舒适性。

xiaoheshang_123的博客 137

EnumWindows 使用以及出现的问题

EnumWindows 用来列举屏幕上所有顶层窗口。MSDN原话:The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window。函数形式:BOOL EnumWindows( WNDENUMPROC lpEnumFunc, /

djimon的专栏 3180

基于多传感器融合的智身四足机器狗楼梯环境SLAM系统设计与实现

本文设计了一种基于多传感器融合的四足机器狗楼梯环境SLAM系统。系统采用Jetson Orin NX为主控制器,集成RealSense D435i深度相机和Livox Mid360激光雷达,在ROS2框架下实现平面定位精度<5cm、楼梯环境下导航不漂移的目标。通过多层次传感器融合策略、运动学约束优化和状态切换机制,解决了楼梯环境下的定位累积误差问题,实现了平面与楼梯环境的自动识别切换及精度复位功能。硬件设计注重传感器布局优化和精确标定,软件架构采用分层设计,确保实时性能。该系统为四足机器人在复杂地形中

huanghm88的专栏 238

《网络安全自学教程》- 802.1x协议

802.1x协议架构,工作原理/认证流程,认证方式,MAB认证,触发认证的三种方式,EAP报文格式,EAPOL报文格式

wangyuxiang946的博客 2万+

EnumWindows的使用方法

#include "tlhelp32.h" //定义一个进程ID和窗口句柄的结构体 typedef struct tagWNDINFO { DWORD dwProcessId; HWND hWnd; } WNDINFO, *LPWNDINFO; #include "stdafx.h" #include "Com_NetStatusThread.h" #includ

June19860709的专栏 4059

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

FindWindow、FindWindowEx、EnumWindows、EnumChildWindows使用详解

FindWindow FindWindowEx EnumWindows EnumChildWindows

lzl_li的专栏 4966

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

使用API函数EnumWindows()枚举顶层窗口

http://simpleease.blog.163.com/blog/static/1596085820052770290/ 要枚举Windows当前所有打开的顶层窗口,可使用Windows API函数EnumWindows():BOOLEnumWindows(WNDENUMPROClpEnumFunc,LPARAM...

921

使用EnumWindows函数通过Windows进程ID获取窗口句柄实例(VB.NET2019)

本文通过已知窗口的进程ID获取窗口句柄的实例来浅谈EnumWindows函数使用、委托函数的定义及其意义、ByVal和ByRef的区别。

mengxiangde的博客 6639

枚举顶级窗口函数EnumWindows和它的回调函数的使用!

首先是它的原型 BOOL EnumWindows(      WNDENUMPROC lpEnumFunc,     // 回调函数的地址--说白了就是回调函数的名字放这      LPARAM lParam               // 要是枚举桌面所有窗口添0或NULL就行 ); 在来看看回调函数原型 BOOL CALLBACK EnumWindowsProc(      H

脑袋不好使 1万+

关于使用 EnumWindows 枚举应用程序窗口的技巧

关于使用 EnumWindows 枚举应用程序窗口的技巧 最近在写一个 Alt-Tab 替换程序,需要枚举可切换的应用程序窗口。枚举窗口一般使用的是 EnumWindows 函数 BOOLEnumWindows( WNDENUMPROClpEnu...

weixin_30847939的博客 608

win32-使用EnumWindows比较两个窗口的Z轴

通过使用EnumWindows()和枚举窗口来手动确定EnumChildWindows()来直接确定哪个窗口在z轴上比另一个窗口高。 struct myEnumInfo { HWND hwnd1; HWND hwnd2; HWND hwndOnTop; }; BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) {...

qq_39529180的博客 124
上一篇: 窗体全屏 隐藏任务栏与菜单栏
下一篇: Windows Mobile窗口全屏总结
aptentity
博客等级 码龄20年 54粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值