Java VBS SendKeys未发送”(“字符

Java VBS SendKeys未发送”(“字符,java,vbscript,Java,Vbscript,我是新来的,所以请放轻松:。我在使用下面的VB脚本在记事本上输入数据时遇到了一个奇怪的问题。我使用SendKeys发送到记事本的代码每次都会更改。我注意到该脚本工作得很好,除非我发送的文本包含or,如果发生这种情况,我会收到错误无效的过程调用或参数,并且只有一个文本打印 我的部分代码如下,无法完全附加: Wscript.Sleep 300 objShell.SendKeys "zDYg8/bY)b6Ox$z" 阅读并遵循: SendKeys方法使用一些字符作为字符的修饰符 而不是使用它们的面值

我是新来的,所以请放轻松:。我在使用下面的VB脚本在记事本上输入数据时遇到了一个奇怪的问题。我使用SendKeys发送到记事本的代码每次都会更改。我注意到该脚本工作得很好,除非我发送的文本包含or,如果发生这种情况,我会收到错误无效的过程调用或参数,并且只有一个文本打印

我的部分代码如下,无法完全附加:

Wscript.Sleep 300
objShell.SendKeys "zDYg8/bY)b6Ox$z"
阅读并遵循:

SendKeys方法使用一些字符作为字符的修饰符 而不是使用它们的面值。这组特殊字符 由括号、括号、大括号和

加号+, 插入符号^, 百分号%, 还有tilde~。 通过将这些字符括在大括号{}中发送它们

给出了特定字符串文本的答案

使用或将字符串变量修改为SendKeys兼容格式,例如,如以下代码段所示:

sString=zDYg8/bYb6Ox$z sStringToSend=替换sString,{},{} objShell.SendKeys sStringToSend 编辑2:支架需要特殊处理,必须先处理

sStringGiven=zDYg8/bYb6Ox$z “牙套需要特殊处理,必须先处理! sStringAux= 对于ii=1至Len sStringGiven sChar=中段,ii,1 选择案例 格{,}大括号 sStringAux=sStringAux&{&sChar&} 其他情况 sStringAux=sStringAux&sChar 结束选择 下一个 '然后,大括号以外的特殊字符可以按任何顺序处理 '在嵌套的'replace'函数中,或按顺序: sStringAux=替换sStringAux,^,{^},%,{%} sStringAux=替换sStringAux,+,{+},~,{} sStringAux=替换sStringAux,[,{[},],{]} sStringToSend=替换sStringAux,{},{} objShell.SendKeys sStringToSend 编辑3-最终解决方案:完全忽略替换:

sStringGiven=zDYg8/bYb6Ox$z sStringToSend= 对于ii=1至Len sStringGiven sChar=中段,ii,1 选择案例 格{,},,[,],^,%,+~ sStringToSend=sStringToSend&{&sChar&} 其他情况 sStringToSend=sStringToSend&sChar 结束选择 下一个 objShell.SendKeys sStringToSend
使用{}表示和{}例如,投票支持伟大的评论,甚至不需要anwser@PSo文本每次都在变化,mate。我想在文本上找到or并自动修复。我不想每次都手动修复。我希望你明白我的意思。我明白你的意思,它是来自外部还是自动生成的,我建议你写一个函数在上查找大括号字符串和{}@PSo是的。文件上的文本来自批处理文件。然后批处理将运行脚本,因为我需要SendKey功能。如果SendKey之后的变量为或,则脚本将失败。太糟糕了,我只擅长批处理,而不是VB,这就是为什么我需要这方面的帮助。谢谢:。我知道。谢谢:。但我如何告诉我的无论何时,只要它看到那个间谍角色,就把它抄写给所有的人。非常感谢你!你的台词就像一个魔术!它像一个符咒一样工作。多亏了你,我今天学到了一些东西。我会在那一行加上其他特殊的角色,这样我以后就可以被报道。真糟糕,我是新来的,否则我会投票给你的答复
objShell.SendKeys "zDYg8/bY{)}b6Ox$z"