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