中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: vbs如何输入中文 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『楼 主』:  vbs如何输入中文

─────────────────── 版务记录 ────────────────────
执行:bjsh
说明:因在[请问我的这个vbs错在哪里?]里发表过类似内容,没必要发表新贴;
提示: 类似内容的问题可以在一个楼里提出;适当修改标题即可.
处罚:暂时不予处罚;给予警告;请点击这里阅读论坛发帖规定,以避免在
      今后的讨论中违规发帖。
─────────────────── 版务记录 ────────────────────



我抄了个用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 ]

   此帖被 -8 点积分        点击查看详情   
评分人:【 baomaboy 分数: -8  时间:2007-4-26 05:02


2007-4-25 08:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  

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 ]

2007-4-25 13:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lililulula
中级用户





积分 302
发帖 138
注册 2007-3-29
状态 离线
『第 3 楼』:  

测试环境XP,ctrl+space切换后输入法为智能ABC
结果输出:小楼一夜听春雨

  Quote:
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"



2007-4-25 23:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  

ctrl+space切换输入法一般是默认的第一个输入法,我的是“紫光拼音”,所以要先根据个人使用方式利用ctrl+space次数切换

2007-4-25 23:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

创建IE对象,就可以使用剪贴板了^
把中文复制到剪贴板后用VBS发送SENDKEYS
ctrl+V组合

2007-4-26 07:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  



  Quote:
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


2007-4-26 11:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fengjing001
初级用户





积分 69
发帖 37
注册 2007-1-1
状态 离线
『第 7 楼』:  

希望对这些好的东东能详细讲解一下。我这样的菜鸟还看不懂啊。

2007-4-26 12:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 8 楼』:  

6楼 可以在后面加上解释吗?
谢谢了,
我运行你的代码时,提示objIE.Quit 这一句出错了.不要这句就可以,但是会打开一个空白的网页,好奇怪!!!!

[ Last edited by 26933062 on 2007-4-28 at 10:03 AM ]

2007-4-28 22:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 9 楼』:  

需要IE支持(应该IE是默认的浏览器)

其实和批处理差不多,只不过多了objIE将的字符用for一个个复制入剪贴板

2007-4-28 23:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 10 楼』:  

恩!好像如果是遨游默认浏览器,那有难度啊!!~~!

2007-8-16 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: