按键精灵指定窗口运行 有N个窗口(可以指定为记事本窗口),第一个窗口移动到(0,0)点

你的位置:
多窗口后台自动喊话 ------记事本检测
14:33:17 |
来源: 按键精灵资源站
UserVar MoShi=DropList{&普通模拟&:0|&超级模拟&:1|&硬件模拟&:2}=0 &设置模拟方式&
UserVar str1=&这是自动喊的第1句话& &请输入自动叫喊的第1句话&
UserVar str2=&这是自动喊的第2句话& &请输入自动叫喊的第2句话&
UserVar str3=&这是自动喊的第3句话& &请输入自动叫喊的第3句话&
UserVar Yanshi=3000 &两句喊话之间的等待时间,1秒钟是1000&
//****************设置结束*****************
If MoShi=0 Then
& & SetSimMode 0
ElseIf MoShi=1 Then
& & SetSimMode 2
ElseIf MoShi=2 Then
& & SetSimMode 1
Dim Array(100)
For i = 0 To 100
Wk = WaitKey()
Wk = WaitKey()
&&If Wk = 36 Then
&&Hwnd = Plugin.Window.MousePoint()
& & Array(i) = Plugin.Window.FindEx(Hwnd, 0, &Edit&, 0)
& & MessageBox &获得第&&(i+1)&&个窗口的句柄为&&Array(i)
& & ElseIf Wk = 35 Then
& & MessageBox &已经开始执行&
& & End If
Delay 1000
For i=0 to max
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay 1000
Call Plugin.Bkgnd.SendString(Array(i), str1)
Delay 1000
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay Yanshi
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay 1000
Call Plugin.Bkgnd.SendString(Array(i), str2)
Delay 1000
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay Yanshi
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay 1000
Call Plugin.Bkgnd.SendString(Array(i), str3)
Delay 1000
Call Plugin.Bkgnd.KeyPress(Array(i), 13)
Delay Yanshi
& & Delay Yanshi
------------这是本人自己做的多窗口后台自动喊话,目前支持记事本检测&&欢迎大家讨论
检测方法开始Ctr+Z---Home键获得第一个提示----Home键获得第二个提示——End获得第三个开始提示就可以开始执行了
欢迎大家讨论新建一个文本文档,打开,Windows就会给这个文本文档的窗口临时分配唯一的一串数字来标识这个窗体,以区别于其他窗口,这串数字就叫句柄。
因为句柄是临时随机分配的,所以每次虽然是打开同一个文件,但是分配到的一串数字却是不一样的。
所以我们要通过窗体的标题栏来确定每次不同的句柄。
例如,我打开一个&新建 文本文档 (5).txt&,打开,文本文档的标题栏是&新建 文本文档 (5).txt - 记事本&,那么,我就通过&新建 文本文档 (5).txt - 记事本&(注意:不是文件名)来查找这个文本文档的句柄。
Hwnd&= Plugin.Window.Find(0, "新建 文本文档 (5).txt - 记事本")
Delay 2000
然后通过句柄对这个文档进行最大化操作
Plugin.Window.Min&Hwnd
Delay 2000
要对这个文本文档进行写入,就要另外单击文本区域,文本区域是这个窗体的一部分,有自己的句柄,我们称之为&子句柄&。我们可以通过刚才找到的窗口句柄,类(抓抓里面获取),来查找窗体里面的某一独立部分的子句柄。然后对子句柄所标识的窗体部分写入文本。
HwndEx&= Plugin.Window.FindEx(Hwnd, 0, "Edit", 0)
Delay &2000
Call Plugin.Window.SendString(HwndEx, "hello,word,I am the king") &
Delay 2000
&全部命令&--&插件命令&--&windows 窗口插件& 可找到以上函数
后台:什么意思?
比如一个游戏,窗口最大化后,我们可以玩;但是我们把它最小化后,虽然我们看不见了,它还是没有停止,它还在幕后(前台后面)继续运行,这个就叫后台。
又例如,我们挪动鼠标双击我的电脑,这个过程可视;如果通过后台执行这个操作,我们虽然看不到鼠标挪动的过程,但是也可以达到双击我的电脑的效果。
Hwnd = Plugin.Window.MousePoint() &获得当前鼠标所在窗体的句柄的命令
Call Plugin.Bkgnd.LeftClick(Hwnd, 36, 98) &在后台单击选中&我的电脑&,前提是执行时候鼠标要挪到桌面上。貌似按键精灵对鼠标后台双击单击做得不好,有时不灵。
Hwnd = Plugin.Window.MousePoint()
XY = Plugin.Bkgnd.FindColor(Hwnd, 0, 0, , "0201E1") &&'区域找色
ZB = InStr(XY, "|")
X = Clng(Left(XY, ZB - 1))
&Y = Clng(Right(XY, Len(XY) - ZB))
MsgBox "x"&X &"y"& Y &&&&&&&&&&&&&&&&&&&&'弹出窗口,指定颜色如果找到,显示他的点的坐标
注意:插入语句默认是X = Clng(Left(XY, ZB - 1)): Y = Clng(Right(XY, Len(XY) - ZB))这样的
要把冒号改掉,分2行。
获得句柄的几个函数。注意,如果不打开窗口,是无法获得句柄的。标题名也不能写错,写错也无法获取。但是会有返回值。
Hwnd = Plugin.Window.GetKeyFocusWnd() &&&获得当前激活的窗口句柄,激活的窗口鼠标不一定在上面
Hwnd = Plugin.Window.MousePoint() &&&&&&获得鼠标当前停留的窗口的句柄,当前窗口状态未必激活(被点选)
Hwnd = Plugin.Window.Find(0, "无标题 - 记事本") &获取窗口标题栏为&无标题 - 记事本&的窗口的句柄
一般优先使用Plugin.Window.Find,如果窗口标题不固定,再考虑使用其他两个函数
Hwnd = Plugin.Window.Find(0, "新建 文本文档 (7).txt - 记事本")
sRect = Plugin.Window.GetClientRect(Hwnd) &&'获取窗口的4个坐标
myArray=Split(srect,"|") &&&&&&'分离出四个坐标 因为Split就是数组函数,所myArray虽然没有定义,也被默认定义成了动态数组变量
MessageBox myArray(0) & "," & myArray(1) &'显示出变量起始点的坐标
a = CLng(myArray(0)) &&&&&&&&&&&&&&&&&&&&&'将变量里的值从字符变为数字类型,然后才能用moveTo函数
b = CLng(myArray(1))
MoveTo a, b
获取窗口坐标的目的:窗口的位置不固定,但是窗口内的内容相对于窗口的位置是固定的,&绝对坐标&+&相对坐标&,结合ifColor函数,进行判断
KeyDown 就要记得 keyUp
截取一部分,才有共性。比如找图,找游戏人物,不建议截取增个人,因为人的穿着装备是会变化的;可以截取脸部或者其他一部分。
抓抓工具,可以设定起始坐标,来获得相对坐标。
用户自定义变量http://zy.anjian.com/index.php?action-viewnews-itemid-220
用户自定义变量,也就是说用户可以输入参数(在脚本属性--其他),然后传给程序执行,提高程序灵活性。
UserVar TheKeyYouPress "你要按下的键" &&'注意最后的中文是固定格式,一定要有,不是注释
UserVar TheTimeYouWant "你要按几次"
For TheTimeYouWant
KeyPress TheKeyYouPress, 1
OCX界面(很鸡肋的一个功能,效果也不好,建议直接用&用户自定义变量&)
利用VB对C:\Program Files\按键精灵9\source\自定义界面例子(VB 6.0)\VB-BIG-001\QMacroUI.vbp修改制作界面,然后做成OCX文件。
然后再按键精灵右侧 脚本属性--其他--设置界面 里面,把OCX文件包含进来。
主要原理:例如,VB设计界面的时候,文本框的名称设置成&TheKeyYouPress&要和按键精灵脚本的自定义变量UserVar TheKeyYouPress "你要按下的键",两个要一样。
http://www.aipai.com/c9/ODY9JSknImgnaiYp.html 例子里面大致那样,实际用按键精灵9用起来还有一定问题。
例子里面改了很多地方,其实主要功能就是保存上次你输入的参数,一个将保存好的参数导出。
阅读(...) 评论()按键精灵新手教程:得到窗口句柄以及后台按键,文本
  句柄:看了好多高手的解答,本人最终理解为电脑打开的每个窗口的编号  化繁为简,简洁明了,下面请看脚本例子:  //延时是为了开始运行脚本时,有充足的时间移动到所需窗口上  Delay 3000  //得到鼠标指向窗口的句柄  //Window.MousePoint()是得到鼠标指向窗口的句柄的命令  //a是返回值,就是把得到的句柄赋值到a里面,以备后面脚本调用  Plugin a=Window.MousePoint()  //弹出得到的窗口句柄,句柄被赋值到a里面,所以我们就只弹出a就好  MessageBox a  //循环4遍  For 4  //后台输入文本&你好&  Plugin Window.SendString(a,&你好&)  //后台输入按键&Enter&,Enter的按键码为13,请看附图  Plugin Window.SendKeyPress(a,13)  EndFor  //为什么选用&得到鼠标指向窗口的句柄&  //而不选用&得到当前窗口的句柄&呢  //比如说&记事本&打开一个记事本,会有两个句柄产生  //用兄弟上传的&助手&你能发现  //请看附图,图文结合,很容易就懂了  //多窗口后台,只要稍微变通一下,开始多读两个窗口句柄并赋值,后面只管调用就好  //第一个窗口文本按键发送完了,就发送到第二个就好,稍后给出脚本例子&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
相关软件:
大小:472.98 MB
授权:免费
大小:18.86 MB
授权:免费按键精灵怎么获取窗口左上角坐标
按时间排序
1、在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标等。2、获取窗口左上角坐标之前需知道该窗口的窗口句柄,因为你得确定针对哪个窗口获取左上角坐标。获取窗口句柄的方法很多。在全部命令→插件命令→window窗口插件里都有介绍。3、知道了这个窗口的句柄,就能获取它的左上角坐标,下面是代码:Rect = Plugin.Window.GetWindowRect(Hwnd)MyArray = Split(Rect, &|&)x = Clng(MyArray(0))y = Clng(MyArray(1))//这里的(x,y)是窗口包含边框的左上角坐标,可用后台操作Rect = Plugin.Window.GetClientRect(Hwnd)MyArray = Split(Rect, &|&)x = Clng(MyArray(0))y = Clng(MyArray(1))//这里的(x,y)是窗口不含边框(称为客户区)的左上角坐标
你来错地方了
找图失败,鼠标默认移动到-1,-1
发给你放给你发个你发给那个你哪个哪个好呢
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:学会用按键精灵获取子窗口句柄-土地公生活经验
学会用按键精灵获取子窗口句柄
学会用按键精灵获取子窗口句柄
电脑的桌面是最顶级的窗口,在桌面里的其他程序窗口是桌面的子窗口。那到底父窗口和子窗口是怎么理解的呢?
按键精灵2014
【父窗口与子窗口】每一个窗体form都是一个父窗口,它不是其他任一个窗体的子窗口.窗体上的所有控件,按钮等就是窗体的子窗口.一个窗口(除了窗体)既可能是父窗口,也可能是子窗口.比如窗体里面有一个frame,frame里面的控件就是frame的子窗口,但frame同时也是窗体的子窗口.就像容器里面装着容器.最大的那个容器就是窗体.每一个容器里面的东西就是其子窗口.【常见的父窗口和子窗口的关系】【父窗口对应一个子窗口】1、 有类名没有标题(有标题没有类名)例如:记事本,它只有一个子窗口,子窗口只有类名没有标题。 我们要如何查找获取到这个子窗口的句柄呢?首先,我们先复习下按键里的获取子窗口句柄的命令。命令名称:FindEx 查找子窗口命令功能:根据父窗口句柄查找子窗口匹配类名或者匹配标题命令参数:参数1 整数型,父窗口句柄参数2 整数型,子窗口句柄参数3 字符串型,匹配类名参数4 字符串型,匹配标题㈠ 先要获取父窗口的句柄,然后根据父窗口的句柄来找子窗口。记事本父窗口的标题是:无标题 - 记事本 类名是:Notepadhwnd= Plugin.Window.find(&Notepad& ,&无标题 - 记事本&) //获取记事本父窗口句柄㈡ 获取到父窗口句柄之后,我们还需要知道子窗口的类名,类名为:Editzhwnd = Plugin.Window.findex(hwnd, 0, &Edit&, 0) //获取子窗口句柄*这里子窗口句柄的值设置为0,可能会有很多童鞋很困惑,findex命令不就是获取子窗口句柄的吗?那这里还设置一个子窗口句柄的值干嘛?我要知道还要用findex来找吗?小编刚接触这个命令的时候,对于这个参数也非常疑惑,后来发现是这样的:findex命令里的子窗口句柄,指的是当前要查找的子窗口上面一个子窗口的句柄。 例如上图:当我们要找创建时间这个子窗口的时候,findex命令里的子窗口句柄参数就设置为红框里子窗口的句柄。2、没有类名也没有标题父窗口下只有一个子窗口的情况,标题和类名不设置是可以的。hwnd= Plugin.Window.find(0,&无标题 - 记事本&)zhwnd = Plugin.Window.findex(hwnd, 0, 0, 0)TracePrint zhwnd结果: 【父窗口对应多个子窗口】1、 多个子窗口的类名或标题不一样拿有道云笔记窗口作为例子: 它的这两个子窗口的类名标题都不一样,这样的情况我们按照前面介绍的父窗口下只有一个子窗口的方式来查找就可以了。代码:hwnd = Plugin.Window.find(0,&有道云笔记 Haiye&)zhwnd = Plugin.Window.findex(hwnd, 0, &NETEASE POPO2007 List&, 0)TracePrint zhwnd结果: 2、 多个子窗口的类名或标题一样 有道云笔记下的这两个子窗口的类名、标题都是一样的。hwnd = Plugin.Window.find(0,&有道云笔记 Haiye&)HwndEx = Plugin.Window.findex(hwnd, 0, &Popo.UI.Controls.Class.SkinSplitter&, 0)上面的代码只能找到第一个类名为Popo.UI.Controls.Class.SkinSplitter的子窗口,第二个无法找到。 这样的情况,该怎么找第二个呢?在前面我们提到过,findex里的子窗口句柄这个参数,在这里我们就可以利用它。思路如下:1、获取父窗口句柄2、获取第一个子窗口句柄3、根据父窗口句柄以及第一个子窗口句柄,获取第二个子窗口句柄代码:hwnd = Plugin.Window.find(0,&有道云笔记 Haiye&)HwndEx = Plugin.Window.findex(hwnd, 0, &Popo.UI.Controls.Class.SkinSplitter&, 0)TracePrint HwndExHwndEx = Plugin.Window.findex(hwnd, HwndEx, &Popo.UI.Controls.Class.SkinSplitter&, 0)TracePrint HwndEx结果: 【子窗口下还有子窗口】例如按键抓抓窗口:
抓抓父窗口下类名为#32770的子窗口,它还有它的子窗口,我们如果要找#32770的子窗口下标题为句柄的窗口,该如何查找呢?思路:1、获取抓抓父窗口句柄2、根据父窗口句柄找#32770的子窗口句柄3、以#32770的子窗口作为父窗口, 继续查找下一级子窗口代码:hwnd= Plugin.Window.find(0,&按键抓抓辅助工具06&)zhwnd = Plugin.Window.findex(hwnd, 0, &#32770&, 0)zzhwnd = Plugin.Window.findex(zhwnd, 0, 0, &句柄&)TracePrint zzhwnd结果:
哪里可以购买 iPhone8?哪里价格又是最低?
关注公众号回复“苹果”,获取购买详情。
微信上搜索“南窗数码”,或扫描下方的二维码
“句柄按键精灵”相关经验
句柄按键精灵最新经验}

我要回帖

更多关于 按键精灵找指定的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信