如果字母为Z,则加密程序错误

时间:2017-01-08 14:23:12

标签: encryption vbscript

我正在尝试加密邮件,但如果我使用字母Z则会出错。这是错误(它是荷兰语):

Ongeldige procedureaanroup of ongeldig argument (invalid procedure call or argument)

Set x = WScript.CreateObject("WScript.Shell")
mySecret = InputBox("The code")
mySecret = StrReverse(mySecret)
x.Run "%windir%\notepad"
WScript.Sleep 1000 
x.SendKeys encode(mySecret)
Function encode(s) 
    For i = 1 To Len(s) 
        newtxt = Mid(s, i, 1)
        newtxt = Chr(Asc(newtxt)+3)   
        coded = coded & newtxt 
    Next 
    encode = coded 
End Function 

1 个答案:

答案 0 :(得分:1)

docs for SendKeys州:

  

Brackets" []"与SendKeys一起使用时没有特殊意义,但是   你必须将它们括在大括号内以适应那些应用程序   确实给它们一个特殊的含义(用于动态数据交换(DDE))   例子)。

您的编码方法:

>> WScript.Echo Chr(Asc("Z") + 3)
>> WScript.Echo Chr(Asc("X") + 3)
>>
]
[
>>

为Z和X生成括号。

进一步测试后:

令人讨厌的字母不是(大写)X([)和Z(]),而是它们的小写表兄弟:

文档:

  

要发送大括号字符,请发送字符串参数" {{}"左边   大括号和" {}}"对于正确的人。

证据:

>> set x = WScript.CreateObject("WScript.Shell")
>> x.sendkeys Chr(Asc("z") + 3)
>>
Error Number:       5
Error Description:  Invalid procedure call or argument
>> x.sendkeys Chr(Asc("x") + 3)
>>
Error Number:       5
Error Description:  Invalid procedure call or argument
>>