FindWindow(
  lpClassName,        {窗口的类名}
  lpWindowName: PChar {窗口的标题}
): HWND;              {返回窗口的句柄; 失败返回 0} //FindWindowEx 比 FindWindow 多出两个句柄参数:
FindWindowEx(
  Parent: HWND;    {要查找子窗口的父窗口句柄}
  Child: HWND;      {子窗口句柄}
  ClassName: PChar; {}
  WindowName: PChar {}
): HWND;
{
如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口;
如果  是 HWND_MESSAGE, 函数仅查找所有消息窗口;
子窗口必须是 Parent 窗口的直接子窗口;
如果 Child 是 0, 查找从 Parent 的第一个子窗口开始;
如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口.
}
函数原型:HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow)
 hwndParent:要查找子窗口的父窗口句柄。     如果hwnjParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。     Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。     hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。     lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。     lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。 使用示例1:
IntPtr ptrResult = FindWindow(null, "test");
IntPtr ptrRadioButtonbox = FindWindowEx(ptrResult, IntPtr.Zero, "Button", "&8位");
IntPtr ptrStartBtn = FindWindowEx(ptrResult, IntPtr.Zero, null, "确定");
使用示例2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const int BM_CLICK = 0xF5;
IntPtr maindHwnd = FindWindow(null, "QQ用户登录"); //获得QQ登陆框的句柄
if (maindHwnd != IntPtr.Zero)
{
    IntPtr childHwnd = FindWindowEx(maindHwnd, IntPtr.Zero, null, "登录");   //获得按钮的句柄
    if (childHwnd != IntPtr.Zero)
    {
        SendMessage(childHwnd, BM_CLICK, 0, 0);     //发送点击按钮的消息
    }
    else
    {
        MessageBox.Show("没有找到子窗口");
    }
}
else
{
    MessageBox.Show("没有找到窗口");
}

FindWindow和FindWindowEx函数使用的更多相关文章

  1. windows中使用Findwindow函数与FindWindowEx函数来实现自动控制、触发第三方软件事件的方法

    FindWindow 用来根据类名和窗口名来得到窗口句柄的.但是这个函数不能查找子窗口,也不区分大小写. 如果要从一个窗口的子窗口中查找需要使用FindWindowEX. 如果要搜索的外部程序的窗口标 ...

  2. WinAPI: FindWindow、FindWindowEx - 查找窗口

    FindWindow(   lpClassName,        {窗口的类名}   lpWindowName: PChar {窗口的标题} ): HWND;              {返回窗口的 ...

  3. Delphi 中 FindWindow 和 FindWindowEx 找到外部进程,然后发送消息(比如最大化)

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  4. Delphi 中 FindWindow 和 FindWindowEx 的语法和用法

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  5. FindWindow和FindWindowEx

    函数原型:FindWindow(lpszClassName,lpszWindowName) 参数:lpszClassName--窗口类名;lpszWindowName--窗口标题 功能:查找窗口,未找 ...

  6. Delphi 版FindWindow 和 FindWindowEx 的语法和用法

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  7. Delphi实现获取句柄并发送消息的方法(FindWindow、FindWindowEx、EnumChildWindows、SendMessage)

    Delphi实现获取句柄并发送消息的方法 本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil, ...

  8. C#,使用FindWindow和FindWindowEx查找窗体和控件

    函数: // Find Window // 查找窗体 // @para1: 窗体的类名 例如对话框类是"#32770" // @para2: 窗体的标题 例如打开记事本 标题是&q ...

  9. C#根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)

    任务:将下面弹窗自动关闭 /// <summary> /// 找到窗口 /// </summary> /// <param name="lpClassName& ...

随机推荐

  1. (原)Ubuntu安装TensorRT

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11129472.html 参考网址: https://docs.nvidia.com/deeplear ...

  2. 在CentOS7.5上安装Docker,在Docker中拉取CentOS7.5镜像并安装SSH服务

    # 安装docker yum install -y docker # 启动docker systemctl start docker # 加入开机启动 systemctl enable docker ...

  3. 使用WIFI准备工作及配置内核——韦东山

    主要做的工作:让内核如何支持现有的无线网卡.知道这个流程就可以了,没必要深究. 使用WIFI功能时,涉及两个东西: 同样手机也可以用于WIFI AP模式,让别的设备来连接它.就是我们平时所说的用手机开 ...

  4. Pandas | 20 级联

    Pandas提供了各种工具(功能),可以轻松地将Series,DataFrame和Panel对象组合在一起. pd.concat(objs,axis=0,join='outer',join_axes= ...

  5. 图的遍历 | 1131地铁图: dfs复杂模拟题

    这题在搞清楚思路绕过坑后,还是可以写的出通过sample data的代码的.但是不能AC,让我很气. 最后查清原因:还是对dfs本质理解的不够. wa代码: vis[s]=1; dfs(s,e,0); ...

  6. Excel地址

    这题想了一个小时,也只得了66分,并且是一道看起来很简单的题…… 贴出代码,留给日后的自己 #include <stdio.h> #include <memory.h> #in ...

  7. quantmod

    -quantmod(数据和图形) -TTR(技术分析) -blooter(账户管理) -FinancialInstrument(金融产品) -quantstrast(策略模型) -Performanc ...

  8. [Gamma]Scrum Meeting#6

    github 本次会议项目由PM召开,时间为6月1日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐 ...

  9. 【c# 学习笔记】c#委托是什么

    法庭上律师为当事人辩护,他真正执行的是当事人的陈词,律师就相当于一个委托对象,而当事人则委托律师对象为自己辩护. c#中的委托概念也就好比律师对象,它是一个类(“委托是类类型”这个事实将在“委托本质” ...

  10. Learn About Git Bash

    git是用来做版本控制的,在本节博客中,主要介绍git的下载,以及简单的配置 Version control is a system that records changes to a file or ...