[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] vbs如实现无需激活指定窗口也能对该窗口模拟点击按键

本帖最后由 pcl_test 于 2016-7-17 21:55 编辑

求一个用VBS写的脚本(纯VBS,网上只有按键精灵版的),后台往t.txt文本里写东西,比如,前台是这样的语句:
Set WshShell=CreateObject("WScript.Shell")
WshShell.AppActivate "t - 记事本"
crt.Screen.Send "it"
crt.sleep 100
crt.Screen.Send " "
crt.sleep 100
crt.Screen.Send "is"
crt.sleep 100
crt.Screen.Send " 9"
crt.sleep 100
crt.Screen.Send "{Enter}"
这个问题困扰我好久了,麻烦各位老师赐教,谢谢!非常感谢!

回复 2# czjt1234


    老师,非常感谢!这个能实现向文件追加内容的目的。现在我想的是用SENDKEY的方式,只是那是前台,我想要后台的。我知道老师要问我有您写那种方式为啥还要后台的SENDKEY?可能我一时也解释不清,但我确实需要那种后台的SENDKEY的例子。不知道老师能不能帮帮忙?占用您宝贵时间,十分过意不去,只能万分感谢!谢谢!!!

TOP

时间我不是用在记事本上,只是把记事本当例子,本是想用在其他软件上,起一个模拟按键操作的作用.谢谢各位老师了,拜托了!

TOP

回复 6# czjt1234


    非常感谢老师!我用的是一个模拟显示的程序,它是集显示和按键一体的,我想对这个程序模拟按键进行设置,比如,我按A3,这个模拟按键程序就进入相应菜单,我能看到这个按键过程,但是用SENDKEY是一个前台命令,必须保证电脑没人动,否则就不知道发送到哪去了,所以我就想把它转换成后台命令,这样,我只要开着模拟按键程序就可以用电脑做其他事情了。可我不会后台,网上找了好久,也没有老师帮我。确实太困惑了。网上找了个按键精灵版的后台向记事本发送,也不懂怎么移植到纯VBS上来。老师说的API,具体我的知识有限,所以我也不懂,恳请老师写个简单的实例,小可不剩感激!非常感谢!

TOP

回复 6# czjt1234
主界面[attach]5965[/attach]我按31后变成[attach]5966[/attach]

TOP

这个是按键精灵版的后台向记事本发送按键的例子
'获得符合标题为"t - 记事本"的窗口句柄
HwndEx = Plugin.Window.Find(0, "t - 记事本")
If HwndEx = 0 Then
MsgBox "没有找到符合的窗口,请检查标题是否正确"
End If
'获得记事本子窗口,类名为"Edit"
Hwnd = Plugin.Window.FindEx(HwndEx, 0, "Edit", 0)
'向指定窗口输入一个按键,按键码49为1键
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
Delay 500
'向指定窗口输入一个按键,按键码65为A键
Call Plugin.Bkgnd.KeyPress(Hwnd, 65)
Delay 500
'向指定窗口输入一个按键,按键码13为回车键
Call Plugin.Bkgnd.KeyPress(Hwnd, 13)
Delay 500
'向指定窗口发送一个文本消息
Call Plugin.Bkgnd.SendString(Hwnd, "我是文本内容,OY!")

TOP

回复 13# czjt1234

非常感谢老师!给您添麻烦了!我先看看,研究一下再来说说。谢谢!非常感谢!!!!

TOP

回复 12# czjt1234

老师,12L那个例子好像是获取鼠标坐标的,实际应用中不知道该怎么用?11L的Set UserWrap = CreateObject("DynamicWrapper")报错,说ActiveX部件不能创建对象:'DynamicWrapper'

TOP

返回列表