按键精灵,后台插件问题,懂的人请进!

比如说,我要在文本文件以后台的模式无限按1键,来怎么操作
句柄,有父窗口和子窗口,我要选择的话,应选哪个?
在比如说,我现在得的的句柄是123456这个,
然后,
我要怎么用命令来实现后台无限按1呢,
求具体的步骤,要具体的,带上句柄,
谢谢各位了,知道的一定要说。谢谢

窗口句柄是每一次数值不一样的
比如你现在的句柄是123456 那当你把文本文档关掉重新打开 那就可能变成234567 (每一次句柄数值都不一样)
父窗口就是文本文档整个窗口(包括标题、边框、和纵多子窗口)
拿文本文档这一例来说 :父窗口=标题+边框+子窗口(整个空白区)
如果你想要获得父窗口的话 用下面这代码就能实现
Hwnd = Plugin.Window.Find(窗口类名, "你要获取的窗口标题自己填写")

这一步获取到的是父窗口 并不能操作 我们就要根据父窗口来查找可操作的子窗口
Hwnds = Plugin.Window.FindEx(父窗口句柄, 子窗口句柄 "子窗口类名", 匹配标题)
得到子窗口句柄就能进行操作了
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)

这句话是向子窗口按1键

全部的流程 给你梳理一遍
================================================
Hwnd = Plugin.Window.Find("Notepad", 0)
Hwnds = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0)
do
delay 100
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)

loop

============================================
另一种是直接用鼠标获取
==============================================
Hwnd = Plugin.Window.MousePoint()

do
delay 100
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
loop
============================================
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-12
简单点说吧。以记事本为例,要实现按键1需要找子窗口句柄,用语句:
//得到鼠标指向的窗口句柄
Hwnd = Plugin.Window.MousePoint()
当然你需要事先把鼠标放到记事本客户区内。如果你放到了标题栏那里,它得到的就是父窗口的句柄,那么下面针对客户区的命令就无法实现。
后台无限按1的完整命令:
//得到鼠标指向的窗口句柄
Hwnd = Plugin.Window.MousePoint()
Do//无限循环开始
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)//按键1
Delay 100//延时
Loop//

不懂再追问
第2个回答  2012-11-12
Rem cx
Hwnd = Plugin.Window.Find("Notepad", 0)
If len(Hwnd) < 4 Then
Call RunApp("notepad.exe")
Delay 1500
Goto cx
End If
Hwnd = Plugin.Window.FindEx(Hwnd, 0, "Edit", 0)
Do
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
Delay 100
Loop
第3个回答  2012-11-12
太简单了,本尊不屑回答。
相似回答