![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 06:46 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何调用 Windows 图形界面应用程序及模拟按键(已解决) |
| 可打印版本 2,736 / 19 |
| 第1楼 kafen | 发表于 2006-12-17 00:25 |
| 初级用户 发帖 43 积分 97 | |
|
如何调用 Windows 图形界面应用程序及模拟按键(已解决) 有个 Windows 图形界面应用程序打开后可以填入一个任意数字,然后点击确定即可,我想写个批处理来调用打开它并能填入指定的数字再自动完成确定,请问如何写这个批处理?多谢啦!
[ Last edited by kafen on 2006-12-19 at 09:54 PM ] |
|
| 第2楼 redtek | 发表于 2006-12-17 00:31 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
如果是命令行工具,兄可以参考如下两个贴子中的示例代码~:)
如何用管道的命令把多个结果输入到后一个程序里 http://www.cn-dos.net/forum/viewthread.php?tid=25707&fpage=2 如何用debug 编出一个回车的命令? http://www.cn-dos.net/forum/viewthread.php?tid=25691&fpage=2 如果是调用 Windows 图形界面应用程序并发送数字以及模拟按键,则参考: 在CMD下如何用批处理模拟按键 (下面链接的第7楼示例代码) http://www.cn-dos.net/forum/viewthread.php?tid=19049&fpage=1&highlight=sendkey 谁能帮忙编个VBS做一件不可能的事 (见贴子第5楼通过剪辑板实现发送信息) http://www.cn-dos.net/forum/viewthread.php?tid=22649&fpage=1&highlight=sendkey [ Last edited by redtek on 2006-12-16 at 11:37 AM ] |
|
| 第3楼 jmz573515 | 发表于 2006-12-17 00:55 |
| 银牌会员 发帖 464 积分 1,212 | |
|
set ws=wscript.createobject("wscript.shell")
ws.run "calc.exe" '这是你要运行的程序,写上完整路径。 wscript.sleep 2000 ws.sendkeys "12321" '这里是你要填入的数字。 ws.sendkeys "~" |
|
| 第4楼 kafen | 发表于 2006-12-17 01:09 |
| 初级用户 发帖 43 积分 97 | |
Originally posted by redtek at 2006-12-17 00:31: |
|
| 第5楼 redtek | 发表于 2006-12-17 01:24 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
3楼jmz573515兄给出的示例代码非常详细易懂~:)
下面就把jmz573515兄给出的代码解释一下: 兄可以将3楼代码存成一个名为 计算器.VBS 的文件,然后鼠标双击执行。 另:兄5楼所提及代码先不要试验,那是用批处理将VBS代码写成VBS脚本。 所以里面又包含了批处理文件操作技巧,反而又增加了学习难度。 建议只试验3楼代码,先从Windows计算器开始,然后再试着记事本,再试着其它更复杂应用程序的控制。 下面是VBS所能发送的健值代码举例: (下面键值列表的部分内容取自互联网某网站,原作者不详)
|
|
| 第6楼 kafen | 发表于 2006-12-17 01:36 |
| 初级用户 发帖 43 积分 97 | |
|
多谢楼上两位,试用计算器和记事本成功,接下来再多试试别的,多谢了,我得好好学学啦!
|
|
| 第7楼 kafen | 发表于 2006-12-17 02:06 |
| 初级用户 发帖 43 积分 97 | |
|
可能是涉及到这个应用程序要指定输入框定位问题,还是无法实现,请帮我看看吧。
[ Last edited by kafen on 2006-12-17 at 02:43 AM ] |
|
| 第8楼 wydos | 发表于 2006-12-17 02:23 |
| 中级用户 发帖 117 积分 304 | |
|
可以用tab键定位指定输入框,按下tab键,看按几下定位到你要的输入框
下面代码是 按tab键按6次 wshshell.sendkeys("{TAB 6}") |
|
| 第9楼 kafen | 发表于 2006-12-17 02:32 |
| 初级用户 发帖 43 积分 97 | |
Originally posted by wydos at 2006-12-17 02:23: 真的好感谢大家,这里高手真多呀! 因为我上面是用ws.sendkeys,所以这里只能用ws.sendkeys("{TAB 6}"),否则会出现错误提示:找不到wshshell对象。谢谢你的指导! 因为大家的耐心指导,我已解决了问题,感谢jmz573515兄和wydos兄,特别是redtek兄的悉心指导! set ws=wscript.createobject("wscript.shell") ws.run "tcpPatch.exe" '这是你要运行的程序,写上完整路径。 wscript.sleep 2000 '这里设置延时时间为2秒钟。 ws.sendkeys("{TAB 1}") '按一下TAB键定位鼠标位置,以此类推! ws.sendkeys "300" '这里是你要填入的数字。 ws.sendkeys("{TAB 2}") '再按两下TAB键定位应用按钮。 ws.sendkeys "~" '按回车确定应用。 ws.sendkeys("{ESC}") '按ESC退出该程序。 [ Last edited by kafen on 2006-12-17 at 02:51 AM ] |
|
| 第10楼 redtek | 发表于 2006-12-17 02:46 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
set ws=wscript.createobject("wscript.shell")
上面的 set ws= 大概含义是:将创建的 "wscript.shell” 对象的 引用 赋给变量 ws 所以,你下面就可以引用这个对象来操作一些东东了:) ws.run "calc.exe" 如果你将变量设置为 set redtek= ………… 那么下面就当然是使用 redtek.run …… 什么了:) (注: 上面我解释的不完全正确,没学过VBS,大概是这个意思,更详细兄再多查些更准确的解释与资料) |
|
| 第11楼 kafen | 发表于 2006-12-19 09:51 |
| 初级用户 发帖 43 积分 97 | |
|
我晕,为什么以上的方法在做Flash Player 9.0 for IE批处理安装时无法实现?
Flash Player 9.0 for IE下载地址为:http://nj.onlinedown.net/soft/14968.htm 大家帮我看看好吗?谢谢了! 这是这样写的: set ws=wscript.createobject("wscript.shell") ws.run "flashIE.exe" wscript.sleep 1000 ws.sendkeys "~" 存为.vbs文件后运行,安装完无法关闭界面! [ Last edited by kafen on 2006-12-19 at 09:54 AM ] |
|
| 第12楼 electronixtar | 发表于 2006-12-19 11:07 |
| 铂金会员 发帖 2,672 积分 7,493 | |
| 第13楼 kafen | 发表于 2006-12-19 11:21 |
| 初级用户 发帖 43 积分 97 | |
Originally posted by electronixtar at 2006-12-19 11:07: 谢谢回复,但是我试了,提示错误。我看到别人有个VBS转成的EXE,只是不知他加了什么代码可以安装完退出。我写的那个代码应当跟他差不多,就只是哪里差了一点。 哦,忘记了说一下,我不是在DOS下运行这些的。 [ Last edited by kafen on 2006-12-19 at 11:24 AM ] |
|
| 第14楼 redtek | 发表于 2006-12-19 11:42 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
不知道kafen兄试验时所提示的是什么错误?(这个有可能对解决这问题很关键)
如果安装程序都装完了但它自己不会退出(或是无法正常被.sendkey发送的退出等按键所控置), 如果是这样,干脆把那个安装程序用 TaskList 查出来,再用 TaskKill 杀掉~:) |
|
| 第15楼 lisiyuan | 发表于 2006-12-19 11:59 |
| 初级用户 发帖 28 积分 21 | |
|
yun晕 看不懂 以后要努力学习了
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |