中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-16 04:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]在CMD下如何用批处理模拟按键 查看 3,224 回复 11
楼 主 [求助]在CMD下如何用批处理模拟按键 发表于 2006-02-09 16:48 ·  中国 广东 深圳 电信
初级用户
积分 25
发帖 7
注册 2006-02-09 13:26
UID 50088
状态 离线
我是一名菜鸟,要用批处理来实现按键功能,就相当于我们用键盘输入某个键一样的功能,不知能不能实现,请问各位大侠赐教!小弟在此谢过了!


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


[ Last edited by willsort on 2006-2-13 at 17:19 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
gene771771 -1 2006-12-20 06:42
2 发表于 2006-02-09 17:55 ·  中国 广东 广州 白云区 电信
中级用户
★★
积分 466
发帖 237
注册 2005-10-12 20:53
UID 43413
状态 离线
用KPUSH
3 发表于 2006-02-10 09:50 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线

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


Re chenhuayuchy:

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

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

所以,你应该具体指明,在什么系统环境下?什么应用程序界面中?需要何种类型的按键?
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
4 发表于 2006-02-10 10:39 ·  中国 江西 抚州 移动
高级用户
★★★
中國DOS聯盟常任參議员
积分 686
发帖 318
注册 2005-11-04 13:00
UID 77577
性别 男
状态 离线
willsort:
“重定向”是什么呀
5 请教 发表于 2006-02-10 13:30 ·  中国 广东 深圳 电信
初级用户
积分 25
发帖 7
注册 2006-02-09 13:26
UID 50088
状态 离线
我想在win2000的CMD中实现类似手动输入键盘功能该如何实现 ?
6 发表于 2006-02-13 17:22 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re chenhuayuchy:

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

你是否是想实现屏幕上的文字逐字显现的动态打字效果?
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
7 发表于 2006-02-18 07:59 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
@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,自己看着改吧。。。
8 willsort: 发表于 2006-02-18 12:17 ·  中国 广东 深圳 电信
初级用户
积分 25
发帖 7
注册 2006-02-09 13:26
UID 50088
状态 离线
假设桌面弹出一个对话框,让你选择“确定”,如果我想用WIN2000中的批处理的一些指令来完成这个功能,该怎么实现?请告知,谢谢!
9 发表于 2006-02-18 22:44 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
给出思路:
1.用net命令启动信使服务
2.net send 127.0.0.1 "请按确定"
如果是XP的话就简单了,除了上面的方法外还可以:
msg %username% /time:10 "请按确定(10秒后自动退出。)"
如果你要更专业一点的对话框的话就加上VBS好了,不光是普通的对话框可以实现,就连通用对话框都可以实现。。。
10 发表于 2006-12-20 05:55
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
UID 69523
性别 男
状态 离线
各位版主可以换个想法吗,如果楼主的目的不是要解决实际中的问题,而是在学习P处理,就是想用P处理在CMD下实现,那该如何实现呢.
比如:一个P程序,在选择了某项功能后所执行的内容是按F1键,又或者是按WIN+R键,如何实现???

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

[ Last edited by hxuan999 on 2006-12-19 at 05:56 PM ]
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
11 发表于 2007-02-01 01:19 ·  中国 湖南 长沙 联通
社区乞丐
★★
gaoshou
积分 -16
发帖 77
注册 2007-01-30 09:11
UID 78105
性别 男
状态 离线
超顶
:cool:
12 发表于 2007-02-01 22:59 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
UID 60532
状态 离线
帮顶
论坛跳转: