Board logo

标题: [求助]在CMD下如何用批处理模拟按键 [打印本页]

作者: chenhuayuchy     时间: 2006-2-9 16:48    标题: [求助]在CMD下如何用批处理模拟按键

我是一名菜鸟,要用批处理来实现按键功能,就相当于我们用键盘输入某个键一样的功能,不知能不能实现,请问各位大侠赐教!小弟在此谢过了!


───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:修改标题:《19049 - 请教》
说明:原主题作者在通知发出三日后仍未申诉或修改,由版主修改并进行处罚
处罚:扣除因发表该主题而奖励的6点积分,扣除标题违规惩罚性2点积分
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则[转帖]
───────────────── 版务记录 ─────────────────


[ Last edited by willsort on 2006-2-13 at 17:19 ]
作者: Scott0902     时间: 2006-2-9 17:55
用KPUSH
作者: willsort     时间: 2006-2-10 09:50

───────────────── 版主提示 ─────────────────
为了方便论坛用户浏览和版主管理,请修改该主题的标题,以简要叙述主题的内容或意图
如果确认标题不需要修改,请继续回复该主题进行申辩,若申辩理由充分,将取消该通知
如果确认标题需要修改,请点击该主题首帖下方"编辑"按钮,在编辑页面中修改标题栏
如果此通知发出三日后仍未进行申诉或修改,将由版主进行修改,并对作者进行相应处罚
处罚为扣除8点积分,包括追回因发表主题奖励的6分和因标题违规而惩罚性扣除的2分
───────────────── 版主提示 ─────────────────


Re chenhuayuchy:

      你的问题描述得不很清晰,导致解决方案的差岐。

      最简单的方案是用 ECHO 直接将所需按键所对应的 ASCII 字符通过“管道”或“重定向”传递给所需程序,但局限性也很大,对于很多不支持“管道”或“重定向”的程序无可奈何。 KPUSH 是操作键盘缓冲区来模拟按键的工具,可以适用于很多场合,但是对许多不读取键盘缓冲区或者初始化缓冲区的应用程序无能为力;还有一款工具 SCANCODE 5.90 不是通过键盘缓冲区来模拟按键的(具体原理待查),适用的应用程序更多一些,但是不能工作于 CMD 与虚拟机环境下。

     所以,你应该具体指明,在什么系统环境下?什么应用程序界面中?需要何种类型的按键?
作者: Jneny     时间: 2006-2-10 10:39
willsort:
   “重定向”是什么呀
作者: chenhuayuchy     时间: 2006-2-10 13:30    标题: 请教

我想在win2000的CMD中实现类似手动输入键盘功能该如何实现 ?
作者: willsort     时间: 2006-2-13 17:22
Re chenhuayuchy:

      你尚未回答“什么应用程序界面中?需要何种类型的按键?”

      你是否是想实现屏幕上的文字逐字显现的动态打字效果?
作者: 3742668     时间: 2006-2-18 07:59
@echo off
echo set WshShell = CreateObject("WScript.Shell") >>sendkey.vbs
echo WshShell.AppActivate %1 >>sendkey.vbs
echo WshShell.SendKeys "%2"       >>sendkey.vbs
:other
if "%3" == "" start sendkey.vbs & exit
echo WshShell.SendKeys "%3"       >>sendkey.vbs
shift
goto other
参数一:要发送按键的程序的标题,注意用引号括起来。
参数2-9:要发送的按键。可以发送一些功能键,如ALT,ESC,CTRL等等。。。
于XP专业版SP2下测试通过,无2000,自己看着改吧。。。
作者: chenhuayuchy     时间: 2006-2-18 12:17    标题: willsort:

假设桌面弹出一个对话框,让你选择“确定”,如果我想用WIN2000中的批处理的一些指令来完成这个功能,该怎么实现?请告知,谢谢!
作者: 3742668     时间: 2006-2-18 22:44
给出思路:
1.用net命令启动信使服务
2.net send 127.0.0.1 "请按确定"
如果是XP的话就简单了,除了上面的方法外还可以:
msg %username% /time:10 "请按确定(10秒后自动退出。)"
如果你要更专业一点的对话框的话就加上VBS好了,不光是普通的对话框可以实现,就连通用对话框都可以实现。。。
作者: hxuan999     时间: 2006-12-20 05:55
各位版主可以换个想法吗,如果楼主的目的不是要解决实际中的问题,而是在学习P处理,就是想用P处理在CMD下实现,那该如何实现呢.
比如:一个P程序,在选择了某项功能后所执行的内容是按F1键,又或者是按WIN+R键,如何实现???

呵呵,小弟也是想了好久想实现这样的功能呀.

[ Last edited by hxuan999 on 2006-12-19 at 05:56 PM ]
作者: hngaoshou     时间: 2007-2-1 01:19
超顶
作者: anqing     时间: 2007-2-1 22:59
帮顶