FindWindowEx函数

FindWindowEx函数当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄。比如有一些黑客软件需要查找到窗口,然后修改窗口的标题。在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字。这其中,就需要使用到FindWindowEx函数来定位窗口。下面就来使用这个函数来实现控制Windows里带的计算器程序。打开计算器程序,最小化在状态下面,运行本例子,点击创建按钮后,就可以点按钮,就会把计算器显示在最前面。

大家好,又见面了,我是你们的朋友全栈君。

当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄。比如有一些黑客软件需要查找到窗口,然后修改窗口的标题。在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字。这其中,就需要使用到
FindWindowEx
函数来定位窗口。下面就来使用这个函数来实现控制
Windows
里带的计算器程序。打开计算器程序,最小化在状态下面,运行本例子,点击创建按钮后,就可以点按钮,就会把计算器显示在最前面。
 
函数
FindWindowEx
声明如下:
 
#if(WINVER >= 0x0400)
WINUSERAPI
HWND
WINAPI
FindWindowExA(
    __in_opt HWND hWndParent,
    __in_opt HWND hWndChildAfter,
    __in_opt LPCSTR lpszClass,
    __in_opt LPCSTR lpszWindow);
WINUSERAPI
HWND
WINAPI
FindWindowExW(
    __in_opt HWND hWndParent,
    __in_opt HWND hWndChildAfter,
    __in_opt LPCWSTR lpszClass,
    __in_opt LPCWSTR lpszWindow);
#ifdef UNICODE
#define FindWindowEx FindWindowExW
#else
#define FindWindowEx FindWindowExA
#endif // !UNICODE
hWndParent
是找查窗口的父窗口句柄,如果父窗口是桌面,就可以设置为
NULL
hWndChildAfter
是子窗口开始位置。
lpszClass
是窗口注册的类型。
lpszWindow
是窗口的标题。
 
 
调用这个函数的例子如下:
 
#001 //
#002 // 
响应命令
.
#003 // 
#004 //
#005 LRESULT CCaiWinMsg::OnCommand(int nID,int nEvent)
#006 { 
#007  // 
菜单选项命令响应
:
#008  switch (nID)
#009  {
#010  case IDC_CREATEBTN:
#011         //
显示一个按钮。
#012         if (!m_hBtn)
#013         {
#014                m_hBtn = CreateWindow(_T(“BUTTON”),_T(“
按钮
“),
#015                    WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
#016                    50,50,100,32,
#017                     m_hWnd,(HMENU)IDC_BTN,m_hInstance,NULL);
#018         }                                           
#019         break;
#020  case IDC_BTN: 
#021         {
#022               //
查找计算器的窗口。
#023              HWND hWnd = FindWindowEx(NULL, NULL,NULL,_T(“计算器”));
#024               if (hWnd != NULL)
#025               {
#026                    //
窗口是否最小化。
#027                    if (IsIconic(hWnd))
#028                    {
#029                          //
恢复窗口。
#030                          ShowWindow(hWnd,SW_RESTORE);                          
#031                    }
#032                    else
#033                    {
#034                          //
显示窗口。
#035                          ShowWindow(hWnd,SW_SHOWNORMAL);                        
#036                    }               
#037 
#038                    //
把窗口显示到最前面。
#039                    BringWindowToTop(hWnd);
#040 
#041                    OutputDebugString(_T(“
按钮按下
/r/n”));
#042               }               
#043         }         
#044         break;
#045  default:
#046         return CCaiWin::OnCommand(nID,nEvent);
#047  }
#048 
#049  return 1;
#050 }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 暴力破解(一)——python脚本暴力破解 加密的zip压缩文件

    暴力破解(一)——python脚本暴力破解 加密的zip压缩文件简介:zip格式是常见的压缩文件格式,它支持压缩时设置解压密码;有两种加密方式:1传统加密方式和普通的加密方式。传统加密方式是一种比较简单的加密方式,现在一般很少有人使用,而且压缩时系统默认选择的是普通的加密方式。因此网上很多破解zip的软件和脚本都是针对传统加密方式开发的,所以我们拿来使用时,无法对zip进行破解,所以博主使用python搞了一个针对所有压缩加密方式通用的pytho…

    2022年4月29日
    287
  • 《Android应用开发揭秘》内容简介「建议收藏」

    《Android应用开发揭秘》内容简介「建议收藏」关于本博客《Android应用开发揭秘》分类中的文章,欢迎转载。     最近,本博客关于Android的文章更新速度慢了不少,这几个月以来在写一本关于Android应用开发的书籍——《Android应用开发揭秘》,经过三四个月的努力,本书终于定稿,现在已交由机械工业出版社华章公司进行出版,从本书的策划编辑处得到消息,预计本书于12月15日印刷完毕。所以很快就会和大家见面了,期待…

    2022年4月29日
    44
  • Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」

    Python 学生信息管理系统——文章中源码100%真实有效—–如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目「建议收藏」这篇博客主要就是把学生管理系统进行源码分享,这段源码很好的将前面所学的全部串在一起。就我个人而言真的是非常有价值。就算你python前面的基础不好,学完这个系统你会有重获新生的感觉。本文适合需要用python完成课程大作业、python爱好者、python路上的学习者、初学python者、需要将python知识点串在一起的人、上进的人。manageSystem.py#TODO鸟欲高飞,必先展翅#TODO向前的人:Jhon

    2022年8月23日
    9
  • dmesg命令「建议收藏」

    dmesg命令「建议收藏」Linuxdmesg命令 Linux命令大全Linuxdmesg命令用于显示开机信息。kernel会将开机信息存储在ringbuffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。语法dmesg[-cn][-s]参数说明:-c 显示信息后,清除ri

    2025年8月4日
    4
  • 粒子群优化算法(PSO)

    粒子群优化算法(PSO)%%最近写的粒子群的论文,再重新巩固一下推荐一个优化算法代码网址:http://www.Hvass-Labs.org/1研究背景粒子群算法的发展过程。粒子群优化算法(ParticalSwarmOptimizationPSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。由于PSO操作简单、收敛速度快,…

    2022年6月10日
    35
  • 功能测试框架

    功能测试框架测试用例的编写需要按照一定的思路进行,而不是想到哪写到哪,一般测试机制成熟的公司都会有公司自己自定义的测试用例模板,以及一整套的测试流程关注点,当然我们自己在测试生涯中也应当积累一套自己的测试框架,所有功能性的测试都可以依据框架的思路来进行,达到事半功倍的效果。功能测试框架可以包括:界面友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等等。1.1.1界面友好性测试1.风格、样式、颜色是否协调2.界面布局是否整齐、协调(保证全部显示出来的,尽量…

    2022年7月13日
    24

发表回复

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

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