[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]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的目的

   望版上高手帮忙解答,万分感谢
1

评分人数

    • broly: 感谢给帖子标题标注[已解决]字样PB + 2

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

评分人数

TOP

回复 2# applba


    这样是不可以的,我在文中已经说明了,我是验证过的,不知楼上的有没有验证过,不过还是谢谢回复!

TOP

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

回复 3# xiaoxiami
  1. set WshShell = CreateObject("WScript.Shell")
  2. WshShell.SendKeys (chr(34) &"a")
复制代码
双引号是这样输入的

TOP

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

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

TOP

回复 5# applba


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

TOP

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

TOP

返回列表