按键精灵,使用后台语句,依然需要窗口激活

我写一个简单的按键精灵后台语句,如下Hwnd=Plugin.Window.Foreground()dowhile1=1CallPlugin.Bkgnd.KeyPress(... 我写一个简单的按键精灵后台语句,如下

Hwnd = Plugin.Window.Foreground()
do while 1=1
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
loop
49是按键1。
为了测试,我开了个一个游戏窗口和一个记事本。我在激活的游戏窗口按键开始运行脚本,游戏窗口激活状态的时候可以按1,有动作显示;然后我激活了记事本,两边都没有按1,游戏没有动作显示,记事本也没有1;再激活游戏窗口,又有动作显示在按1了。
只能来问问怎么回事了,希望有人知道。。
展开
 我来答
夕阳西下Ysky
2015-02-17 · TA获得超过407个赞
知道小有建树答主
回答量:401
采纳率:71%
帮助的人:166万
展开全部

对于你把记事本不激活的时候它按键没用可能是因为你发送KeyPress是记事本主句柄而不是里面的Edit子句柄,记事本里面是Edit的这个句柄来获得按键输入的,所以你把Hwnd换成记事本里面的Edit窗口句柄就行了。我估计游戏也是这样的原因,因为我没这个游戏也无法具体调试,但记事本是这样没错,我调试过的。

获得Edit句柄按键精灵代码参考:

notepadMainHwnd = Plugin.Window.Find("notepad",0)

notepadEditClassHwnd = Plugin.Window.FindEx(notepadMainHwnd, 0, "Edit", 0)

TracePrint notepadEditClassHwnd

//这个notepadEditClassHwnd变量就是了

求采纳,,我也找原因好久。。

更多追问追答
追问
我用了你的这个代码,但是依然不能在后台进行输入。
我前面自己写的代码,可以在记事本进行循环但是不可以在游戏窗口循环。
追答
我都给你解释原因了,还有我的代码只是获取记事本Edit的句柄不是用来实现输入的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式