七达网是国内最新、最齐、最安全的软件下载基地!

关于我们最近更新热门排行

首页 软件 游戏 应用 文章 专题

新闻资讯软件应用软件教程 编程开发操作系统游戏攻略安卓应用安卓游戏
当前位置:首页 ›› 软件教程 ›› 按键精灵插件安装教程 按键精灵插件使用教程

按键精灵插件安装教程 按键精灵插件使用教程

2018-04-11 11:56   作者:佚名   来源:本站整理   浏览:1763   评论:1  

窗口基础

前言

本人学编程以来,看过的编程方面的书籍没有一本详细介绍窗口的,都是讲如何操作窗口,对于窗口是什么、窗口的结构、窗口的位置、窗口的关系、窗口的状态、窗口的信息,没见过有哪本书详细介绍了,本人根据几年的编程经验,通过各种对窗口操作的说明逆向归纳出这些东西,希望对不了解这些东西的人有些帮助。

窗口是什么?

窗口是用户与应用程序之间交互的界面。

一、窗口的结构

按键精灵插件安装教程 按键精灵插件使用教程

窗口的组成:窗口由窗口客户区和窗口非客户区构成,窗口客户区通常是主要的工作区域。窗口非客户区结构有窗口标题栏、窗口边框、最小化按钮、最大化按钮/还原按钮、关闭按钮、窗口图标、菜单栏。不是所有窗口都有这些,可能只有其中的一部分。

窗口插件增强版中GetWindowInfo函数可获得窗口边框范围和窗口客户区范围。

按键精灵插件安装教程 按键精灵插件使用教程

二、窗口的位置

窗口的屏幕坐标:窗口左上角在屏幕中的位置。屏幕坐标坐标使用平面直角坐标系,屏幕左上角为原 点(即直角坐标系的(0,0)点),和常规的直角坐标系有点区别,横轴向右为正向,纵轴向下为正向。

窗口插件增强版中GetWindowInfo函数可获得窗口边框范围里可取得窗口屏幕坐标。

窗口客户区坐标:窗口客户区坐标使用平面直角坐标系,以窗口客户区左上角为原 点(即直角坐标系的(0,0)点),和常规的直角坐标系有点区别,横轴向右为正向,纵轴向下为正向。

窗口插件增强版中GetWindowInfo函数可获得窗口客户区范围里可取得窗口客户区原 点在屏幕中的坐标。ClientToScreen函数也可以获得窗口客户区原 点在屏幕中的坐标。

窗口Z序:顶层窗口之间,或者一个窗口的兄弟窗口之间,如果有重叠部分,哪个在上面哪个在下面呢?这个就是窗口Z序,类似于三维直角坐标系的Z轴,只是它没有具体的坐标值,只有前后的排序,所以叫Z序。无论是否重叠,都有前后的排序,只是不重叠的时候看不出来。

三、窗口的关系

按键精灵插件安装教程 按键精灵插件使用教程

窗口是顶层窗口,顶层窗口也叫顶级窗口。依附在其它窗口中的窗口是被依附窗口的子窗口,被依附的窗口是依附窗口的父窗口,同一个父窗口中的几个子窗口是兄弟窗口。子窗口可以还有子窗口,父窗口也可以还有父窗口。窗口的关系就像家族中的关系一样,顶层窗口就像创始人一样,家族由他建立。子窗口、子子窗口、子子子窗口……,就相当于儿子、孙子、曾孙……。父窗口、父父窗口、父父父窗口就相当于父亲、爷爷、曾祖父……。父子的关系无论是对人还是对窗口都是相对的。一个窗口的子窗口(不确定)、子子窗口、子子子窗口……可以称为它的后代窗窗口,对于这个后代窗口是否包括直接的子窗口不太确定,微软是这么说的:“……一个窗口的子窗口或者后代窗口”,于是我就晕了,或许是我语文没学好,这里后面说的后代窗口都包括子窗口。一个窗口的父窗口、父父窗口、父父父窗口……可以称为祖先窗口。不同的顶层窗口就像不同家族之间一样,关系不是很紧密,前后左右通常可以自由移动,一个关闭了不会影响另一个(所有者窗口除外)。图中①是顶层窗口,②④⑤是①的子窗口,③是②的子窗口,①是②④⑤的父窗口,②是③的父窗口。①是③的祖先窗口,③是①的后代窗口。②④⑤共一个父窗口①,所以②④⑤是兄弟窗口。如果一个窗口看起来在另一个窗口中,未必是另一个窗口的子窗口,也可能是兄弟窗口,它们只是重叠在一起。

按键精灵插件安装教程 按键精灵插件使用教程

所有者窗口:所有者窗口就像附属国所附属的国家。多个所有者窗口可以共一个顶层窗口,一个窗口的所有者窗口还可以有所有者窗口,它们都是顶层窗口。所有者窗口关闭,其所有的窗口也会关闭。所有者窗口通常在其所有的窗口后面。图中“无标题 - 记事本”窗口是“关于 "记事本"”窗口的所有者窗口。

窗口插件增强版中GetWindow函数可获得父窗口、子窗口、兄弟窗口、顶层窗口、所有者窗口。

四、窗口的状态

最大化、最小化状态就不说了,大家都知道。窗口还原是恢复最大化和最小化的窗口。

按键精灵插件安装教程 按键精灵插件使用教程

窗口激活:窗口的激活状态是针对顶层窗口的,真正处于激活状态的窗口只有一个,激活状态的窗口或者它的后代窗口可接受前台键盘输入。激活状态的窗口边框颜色和任务栏上的对应的按钮(如果有的话)都会变颜色,但窗口边框变了颜色未必就是激活状态的按钮,大多数情况下看窗口边框来判断是准确的。

按键精灵插件安装教程 按键精灵插件使用教程

窗口焦点:拥有激活状态的窗口或者其后代可接受前台键盘输入,那如果它有后代窗口,它和它的后代窗口到底是哪个接受键盘输入呢?这个就是拥有焦点的窗口。拥有焦点的窗口有的为了表示它拥有了焦点,会有些显示上的变化来区别它,比如:有的会有虚线框,有的会显示一个闪动的光标等等。就像窗口的激活状态一样,真正拥有焦点的窗口也只有一个。

窗口的可见与不可见:窗口的不可见就是完全看不见那个窗口。如果一个窗口不可见,那么它的后代窗口也都不可见。

窗口的可用与不可用:不可用的窗口无法接受前台键盘鼠标输入。如果一个窗口不可用,那么它的后代窗口也都不可用。有的窗口为了表示自己不可用,上面显示的文字和图像会变成灰色。

窗口只读:窗口只读是针对文本框的,这个状态的文本框,不可以前台修改文本框的内容。

窗口置顶:窗口置顶是顶层窗口的状态,这个状态的窗口总在其它窗口前面(除了同样是置顶的窗口)。

窗口插件增强版中GetWindowState函数和获得窗口各种状态,SetWindowState函数可设置窗口各种状态。

五、窗口的信息

窗口句柄:窗口有很多,每个窗口都有窗口标题,但是窗口标题可以重复,如果区分不同窗口呢?于是就有了窗口句柄,窗口句柄就像身份证号一样,姓名可以重复,但是身份证号不会重复,窗口句柄也是这样。每个窗口创建的时候都会生成一个窗口句柄,当窗口关闭后该窗口句柄也会变得无效。每个窗口对应的真实窗口句柄是不可修改的。程序通过窗口句柄对窗口进行操作。

窗口插件增强版中获得窗口句柄的函数有:

按键精灵插件安装教程 按键精灵插件使用教程

窗口标题:对于顶层窗口,通常是窗口标题栏上显示的内容。子窗口也有窗口标题,子窗口将窗口标题用在其它地方,比如:窗口客户区显示的文字。

窗口类名:这个类类似于种类,比如人类、牛类、猫类……,每个种类都有相似的基因,人、牛、猫……是他们的类名。窗口类也一样,同一个窗口类名有相同的代码,但具体到个体上可以通过设置样式让他们表现得不同。但有的人不满足已定的样式,想对他们做些修改,如果说设置样式是化妆的话,这个类似于整容和改造,所以即使拥有相同的类名也未必都用相同的外貌和特性。窗口创建后,窗口类名是不可修改的。

窗口ID:这个是用于父窗口来识别子窗口的。如果说窗口句柄是身份证号,窗口标题是名字,窗口ID就是小名了。一些子窗口的窗口标题有显示文字的作用,就不能用它来识别子窗口了,而且窗口标题可以很长,识别也不方便,于是就使用类似于身份证号的内部编号来区别子窗口,它是内部使用的,所以对不是同一个父窗口的子窗口来说,他们即使重复了也没关系。兄弟窗口的窗口ID是可以重复的,不过对于要操作的窗口窗口ID不要重复,除非你不操作这些子窗口或者不使用窗口ID来识别子窗口。

窗口进程、窗口线程:窗口进程和窗口线程是创建这个窗口的进程和线程。什么是进程,什么是线程,这里就不讲了,不知道的去查资料或者到网上搜索。

窗口插件增强版中GetWindowInfo函数可获得窗口的各种信息。

六、常见问题

1.游戏窗口中的小窗口取不到窗口句柄怎么办?

答:游戏窗口中的小窗口通常是游戏绘制的,并不是真实的窗口,因此取不到窗口句柄,就像在一张纸中画了一张纸却无法将纸中画的纸拿出来。

按键精灵插件说明文件与用法

和插件同名的网页文件是插件说明,里面插件各命令的使用说明。以窗口插件增强版V6.00为例子,如下图:

WndEx6.html是WndEx6.dll这个插件的说明文件。

插件说明文件可以直接打开查看内容,也可以和插件文件以前放到按精灵的plugin文件夹中,这样可以在脚本编辑器里查看这个插件的说明了。窗口插件增强版从6.10版开始已经将插件说明文件合并在了插件里,不需要把html文件放到plugin文件夹中了。

找到脚本编辑器左边,全部命令的框中按键精灵命令的分支中,要找的插件的要查看的命令。然后鼠标单击它,就可以在脚本编辑器下面的帮助框中看到该命令的说明。如下图:

按键精灵插件安装教程 按键精灵插件使用教程

Tags:责任编辑:chaijianxin
    1. 361度插件361度插件合集

      本站位大家提供361度插件合集下载,包含有怎么使用按键精灵361后台插件,按键精灵361插件如何在VB中调用的使用教程!

    软件评论

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

        登录   注册
    猜你喜欢