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

 

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

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

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


相关推荐

  • ubuntu 安装gcc「建议收藏」

    ubuntu 安装gcc「建议收藏」一定要记得先update,不然找不到gccsudoapt-getupdate然后输入下述命令即可sudoapt-getinstallgcc

    2022年5月9日
  • 织梦在服务器上面安装的时候一直提示data文件没有权限,可我已经写了权限,还是提示…

    织梦在服务器上面安装的时候一直提示data文件没有权限,可我已经写了权限,还是提示…

    2021年9月22日
  • redis的雪崩和穿透_redis击穿 穿透 雪崩,怎么预防

    redis的雪崩和穿透_redis击穿 穿透 雪崩,怎么预防Redis雪崩:查询时Redis没有数据本来先从Redis里面查某个数据但是Redis中这个数据刚好被删除了,还没来得及更新一瞬间很多请求直接进入了Mysql进行查询而mysql承受不了太大压力,就会出现雪崩Redis穿透:跳过我们预想的数据本来先从Redis里面查某个数据但是Redis中没有这个数据那么请求就会始终从mysql中查询Redis没有起到作用Redis雪崩和Redis穿透的根本原因是:开发时,开发人员并未考虑到这些问题。Redis雪崩和Redis穿透的性质:大量

    2022年9月14日
  • 0xc0000225无法进系统_Win10无法开机0xc0000225错误代码解决方法

    0xc0000225无法进系统_Win10无法开机0xc0000225错误代码解决方法早在使用Win7系统的时候我们就会遇到0xc0000225错误无法开机的问题,而在Win10系统的使用中,同样很多小伙伴也遇到了该错误,那么这时我们要怎么解决呢?下面小编就和大家分享下Win10无法开机0xc0000225错误代码的原因和解决方法。出现0xc0000225错误的原因:出现错误代码0xc0000225,表示Windows无法找到用于引导的BCD(引导配置数据)文件。如果您的系统文…

    2022年6月26日
  • IIS下图片文件防盗链的办法「建议收藏」

    IIS下图片文件防盗链的办法「建议收藏」IIS不支持UrlRewrite。  所以我们需要通过安装第三方服务器扩展让IIS支持UrlRewrite。  目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。  下载地址在:[url]http://www.helicontech.com/download/[/url]具体的设置方法:修改http.ini文件…

    2022年7月23日
  • idea汉化插件「建议收藏」

    idea汉化插件「建议收藏」汉化包地址:链接:https://pan.baidu.com/s/1Qkon6fqG-xBE6bUJqyFz6w提取码:fadq该汉化包支持版本:idea2018效果:将界面英文转为中文1.安装好idea之后,找到lib文件目录,将汉化包复制粘贴进去2.复制粘贴完成后重启idea…

    2022年6月10日

发表回复

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

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