FindWindowEx使用方法「建议收藏」

FindWindowEx使用方法「建议收藏」 功能:这个函数获取窗口句柄。类名和窗体名称和给定的字符串匹配形式。这个功能看起来子窗体,从在一个给定的子窗体子窗体回到下一个起始行。当寻找不大写和小写之间的区别。    函数原型:HWNDFindWindowEx(HWNDhwndParent,HWNDhwndChildAfter。LPCTSTRlpszClass,LPCTSTRlpszWindow);    參数:    hwnd…

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

 功能:这个函数获取窗口句柄。类名和窗体名称和给定的字符串匹配形式。这个功能看起来子窗体,从在一个给定的子窗体子窗体回到下一个起始行。

当寻找不大写和小写之间的区别。

    函数原型: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, “登录”); //获得button的句柄 if (childHwnd != IntPtr.Zero) { SendMessage(childHwnd, BM_CLICK, 0, 0); //点击发送button新闻 } else { MessageBox.Show(“无子窗体”); } } else { MessageBox.Show(“无表”); }

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

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

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


相关推荐

  • 漫步者lollipods如何调节音量_漫步者LolliPods怎么配对双耳-使用教程[通俗易懂]

    不少用户在入手漫步者LolliPods后不知道怎么配对双耳,小编今天为大家带来了漫步者LolliPods的使用教程,感兴趣的朋友不要错过了哦。漫步者LolliPods配对双耳教程方法一一、先随便连接一只耳机,连接以后点击断开连接,把左耳放回充电仓,二、拿出右耳,把充电仓盖上让右耳断开左耳的链接,然后手机搜索能搜到右耳连接,三、这样两个都可以匹配上了,并且使用时随便一只连接都是主耳机方法二第一:拿出…

    2022年4月9日
    721
  • 网络协议主要要素为(网络协议由什么组成)

    一、网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。1、OSI七层协议OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,从上到下分别是7应用层6表示层5会话层4传输层3网络层2数据链路层1物理层。下面的图表显示不同的协议在最初OSI模型中的位置:7应用层例如HTTP、SMTP…

    2022年4月11日
    56
  • seo网站排名策划_网站SEO诊断优化方案

    seo网站排名策划_网站SEO诊断优化方案SEO新人在刚接手网站优化项目的时候,往往无从下手,因为了解的太少,经验也不足,有时候会避重就轻,今天SEO禅要来拉个清单,列出大部分在SEO优化过程中需要注意的点,在进行搜索引擎优化的时候有方案可以参考,就像一张待完成清单,可以参考参考,检查下有什么项目做了,有什么项目没做。站内优化SEO站内优化TDK标签检查每个页面是否有独立的TDK标签,每个页面的标题和描述尽量不要重复,尤其是需要排名的界面,描述最好的手写,把关键词安排进去。关键词优化首页核心关键词3-5个,其他长尾关键词

    2022年9月2日
    4
  • docker dockerfile详解_docker指令

    docker dockerfile详解_docker指令前言Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile简介Dockerfile是用来构建Docker镜像的构建文件,是由一系列

    2022年8月6日
    3
  • spring-mybatis整合-SqlSessionTemplate

    spring-mybatis整合-SqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用。当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前S

    2022年5月6日
    32
  • JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构

    JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构1.JVM内存图1.1JDK1.7JVM内存图程序计数器:线程私有的(每个线程都有一个自己的程序计数器),是一个指针.代码运行,执行命令.而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.Java虚拟机栈:线程私有的(每个线程都有一个自己的Java虚拟机栈).一个方法运行,就会给这个方法创建一个栈帧,栈帧入栈执行代码,执行完毕之后出栈(弹栈)本地方法栈:线程私有的(每个线程都有一个自己的本地方法栈),和Java虚拟机栈类似,Java虚拟机栈加载

    2022年5月29日
    32

发表回复

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

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