Board logo

标题: [问题求助] [已解决]VBS脚本的SendKeys命令如何模拟输入英文的双引号? [打印本页]

作者: xiaoxiami    时间: 2012-1-13 16:14     标题: [已解决]VBS脚本的SendKeys命令如何模拟输入英文的双引号?

描述一下我现在遇到的问题:
    我需要利用VBS打开了test.exe文件,然后在打开的test.exe窗口中输入命令,现在一般的字母组成的都可以输入,比如abc,但是只要涉及到需要输入的这个命令中包含有双引号的均会报有语法错误。
    现在想问的是假如我要用SendKeys在teste.exe中输入包含有双引号的命令,我应该进行什么操作来实现呢,
    出现这个问题原因我饿自己分析认为是由于,SendKeys函数接收的是字符串,而这个字符串又是利用双引号来括起来的,譬如,
例1   
   set WshShell = CreateObject("WScript.Shell")
    WshShell.SendKeys "abc"
     需要输入的abc字符串是利用双引号括住的。这样子可以达到输入abc字符串的目的
例2
    set WshShell = CreateObject("WScript.Shell")
    WshShell.SendKeys "a"b"c"
    假如是例2这种形式的话,VBS会报语法错误,例2的本意我想输入字符串a"b"c
我的问题就是,如何操作可以使我达到例2中的本意,也就是输入a"b"c的目的

   望版上高手帮忙解答,万分感谢
作者: applba    时间: 2012-1-13 22:22

  1. set WshShell = CreateObject("WScript.Shell")
  2. WshShell.SendKeys "a""b""c"
复制代码

作者: xiaoxiami    时间: 2012-1-16 09:49

回复 2# applba


    这样是不可以的,我在文中已经说明了,我是验证过的,不知楼上的有没有验证过,不过还是谢谢回复!
作者: samsinn    时间: 2012-1-16 13:54

本帖最后由 samsinn 于 2012-1-16 13:59 编辑

回复 3# xiaoxiami
  1. set WshShell = CreateObject("WScript.Shell")
  2. WshShell.SendKeys (chr(34) &"a")
复制代码
双引号是这样输入的
作者: applba    时间: 2012-1-16 13:58

本帖最后由 applba 于 2012-1-16 14:01 编辑

回复 3# xiaoxiami
你真的看清楚了吗?你没有看见我用的是两个连续的双引号吗?你测试了我的例子了吗?
你不知道输入单个字符形式的引号,需要使用双引号代替?你不知道还可以是用chr(34)来获得单个引号字符?
作者: xiaoxiami    时间: 2012-1-16 16:08

回复 5# applba


    不好意思,我没有去试验你的代码。不过,我找到了另外一种办法来实现输入双引号的问题,利用shift来实现,假如是我的这个问题的话就是如下代码:
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "a+'b+'c"
这里面的+是shift的意思,是VBS里面的特殊字符,问题已解决,谢谢大家的关注!
作者: daols    时间: 2012-2-3 07:13

alt+34应该也可以吧....




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2