中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 02:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » vbs如何输入中文 查看 1,864 回复 9
楼 主 vbs如何输入中文 发表于 2007-04-25 08:13 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
─────────────────── 版务记录 ────────────────────
执行:bjsh
说明:因在里发表过类似内容,没必要发表新贴;
提示: 类似内容的问题可以在一个楼里提出;适当修改标题即可.
处罚:暂时不予处罚;给予警告;请点击这里阅读论坛发帖规定,以避免在
今后的讨论中违规发帖。
─────────────────── 版务记录 ────────────────────



我抄了个用vbs自动登陆中游的vbs,但是发现用户名是中文就不行了,请问该怎么办?
hjd="""C:\Program Files\Chinagames\iGame\iGame.exe"""
Set Ws=WScript.CreateObject("WScript.Shell")
Ws.Run hjd
WScript.Sleep 2000
Ws.SendKeys "+{TAB 2}"
Ws.SendKeys "{bs 100}"
Ws.SendKeys "//小楼一夜听春雨/"
WScript.Sleep 1000
Ws.SendKeys "{TAB 2}"
Ws.SendKeys "123456"
WScript.Sleep 200
Ws.SendKeys "{ENTER}"

[ Last edited by bjsh on 2007-4-24 at 07:51 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
baomaboy -8 2007-04-26 05:02
2 发表于 2007-04-25 13:11 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
SendKeys的字面意思就是发送键盘命令,中文不行,只能换个思路(查找ing...)

如果输入行支持Ctrl+A全选:
Ws.SendKeys "^a{del}"(也可以不用{del},直接"^a123456"方式,下同)
而可以不用Ws.SendKeys "{bs 100}"

如果不支持Ctrl+A全选:
如果输入光标在输入行的最右侧:Ws.SendKeys "+{left}{del}"
如果输入光标在输入行的最左侧:Ws.SendKeys "+{right}{del}"

[ Last edited by zh159 on 2007-4-25 at 12:22 AM ]
3 发表于 2007-04-25 23:25 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
19年会员
UID 83224
性别 男
状态 离线
测试环境XP,ctrl+space切换后输入法为智能ABC
结果输出:小楼一夜听春雨

zhongwen="C:\WINDOWS\system32\cmd.exe"
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run zhongwen
WScript.Sleep 1000
WshShell.SendKeys "^ xiao"
WScript.Sleep 1000
WshShell.SendKeys "lou "
WScript.Sleep 1000
WshShell.SendKeys "yi "
WScript.Sleep 1000
WshShell.SendKeys "ye "
WScript.Sleep 1000
WshShell.SendKeys "2"
WScript.Sleep 1000
WshShell.SendKeys "ting "
WScript.Sleep 1000
WshShell.SendKeys "chun "
WScript.Sleep 1000
WshShell.SendKeys "yu "
WScript.Sleep 1000
WshShell.SendKeys "5"
4 发表于 2007-04-25 23:39 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
ctrl+space切换输入法一般是默认的第一个输入法,我的是“紫光拼音”,所以要先根据个人使用方式利用ctrl+space次数切换
5 发表于 2007-04-26 07:55 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
创建IE对象,就可以使用剪贴板了^
把中文复制到剪贴板后用VBS发送SENDKEYS
ctrl+V组合
6 发表于 2007-04-26 11:37 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by slore at 2007-4-25 18:55:
创建IE对象,就可以使用剪贴板了^
把中文复制到剪贴板后用VBS发送SENDKEYS
ctrl+V组合

对,我写了一个
str = "内容内容$内容内容"
Num = len(str)
Set WshShell=wscript.createobject("Wscript.Shell")
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")

WshShell.run("notepad.exe")
Wscript.Sleep 1000

for i = 1 to Num
Wscript.Sleep 200
var = Mid(str, i, 1)
if var = "$" then var = vbCrLf
objIE.document.parentwindow.clipboardData.SetData "text", var
WshShell.Sendkeys("^v")
next

objIE.Quit
Wscript.Quit
7 发表于 2007-04-26 12:18 ·  中国 湖南 张家界 电信
初级用户
积分 69
发帖 37
注册 2007-01-01 14:22
19年会员
UID 75195
性别 男
状态 离线
希望对这些好的东东能详细讲解一下。我这样的菜鸟还看不懂啊。
8 发表于 2007-04-28 22:57 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
6楼 可以在后面加上解释吗?
谢谢了,
我运行你的代码时,提示objIE.Quit 这一句出错了.不要这句就可以,但是会打开一个空白的网页,好奇怪!!!!

[ Last edited by 26933062 on 2007-4-28 at 10:03 AM ]
9 发表于 2007-04-28 23:23 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
需要IE支持(应该IE是默认的浏览器)

其实和批处理差不多,只不过多了objIE将的字符用for一个个复制入剪贴板
10 发表于 2007-08-16 16:11 ·  中国 江苏 南京 电信
中级用户
★★
积分 397
发帖 168
注册 2006-10-08 10:07
19年会员
UID 64934
状态 离线
恩!好像如果是遨游默认浏览器,那有难度啊!!~~!
论坛跳转: