C# FindWindowEx用法

C# FindWindowEx用法2010-11-2809:51:18|  分类: 程序编程|字号 订阅 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。   函数原型:HWNDFindWindowEx(HWNDhwndParent,HWNDhwndChildAfter

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


2010-11-28 09:51:18|  分类: 程序编程|字号 订阅

 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。

    函数原型: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。

C#中使用该函数首先导入命名空间:
using System.Runtime.InteropServices;

然后写API引用部分的代码,放入 class 内部
[DllImport(“user32.dll”, EntryPoint = “FindWindow”)]
private static extern IntPtr FindWindowEx( IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow )

例如:

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(“没有找到窗口”);   
}

 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138257.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • kafka性能测试、性能分析与性能调优[通俗易懂]

    kafka性能测试、性能分析与性能调优[通俗易懂]前言:最近在做kafka、mq、redis、fink、kudu等在中间件性能压测,压测kafka的时候参考了这篇文章,大家可以借鉴下!一、测试环境测试使用到三台机器,机器配置如下:共同配置:Intel®Core™i7-7700CPU@3.60GHz、Cores:4、Threads:232GB内存1000Mb/sec网卡差异化配置2TB、7200rpm、SATA3.1,6.0Gb/s(current:6.0Gb/s)1TB、7200rpm、SATA3.1,6.0Gb

  • 浅谈PO模式

    浅谈PO模式浅谈PO模式概述设计原则功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入概述PO模式是自动化测试的一种常见设计思路,核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码

  • SAP MM物料管理系统功能详解

    SAP MM物料管理系统功能详解

  • 地形——高度图

    地形——高度图在游戏中,我们将采用高度图来模拟现实生活中的丘陵和山谷。高度图其实就是一个数组,而该数组的每个元素都指定了地形方格中某一个顶点的高度值。线框模式普通地形模式在高度图中,通常为其每一个元素只分配一个字节的存储空间,以至于高度能在区间[0,255]内取值。但在实际应用中,为了匹配3D世界的尺度,可能要对高度值进行比例变换,就很可能超出上述区间范围。因此,可以分配一个整型或浮点型数组来存储这些高…

  • 怎样用matlab插值得到函数表达式

    怎样用matlab插值得到函数表达式
    x=[1:1:10];
    y=[2:2:20];
    pp=interp1(x,y,’spline’,’pp’)
    breaks=pp.breaks
    coefs=pp.coefs

    说明:
    interp1得到的函数其实是分段函数。
    函数的全部信息全部都在pp里
    让我们看一下其breaks分量和coefs分量,他们蕴含着函数表达式,具体涵义如下:
    假设co

  • 模板字符串拼接html标签_标签当成字符串了

    模板字符串拼接html标签_标签当成字符串了本文实例讲述了ES6模板字符串和标签模板的应用。分享给大家供大家参考,具体如下:ES6中对字符串进行了扩展,而模板字符串就是一个非常实用的方式,可以在html中实现与变量和方法的混编之前我们手动拼接字符串的方式lethello=’Hello’;lethtml=”+”+hello+”+”;console.log(html);//HelloES6中使用模板字符串来优化…

发表回复

您的电子邮箱地址不会被公开。

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