使用 VBscript SendKey 发送特殊字符,如“é”

问题描述 投票:0回答:1

我正在尝试使用

SendKeys
发送一些特殊字符,例如
é

如果我使用

set mySendKeys = CreateObject("WScript.shell")
mySendKeys.SendKeys "é"

肯定不行...

我想用

asc("é")
解释这个字符,得到的结果是
chr(233)
,然后
mySendKeys.SendKeys chr(233)

听起来不错?...但它会产生错误

Invalid procedure call or argument

我发现了类似的问题这里

或者有没有其他方法可以模拟键盘输入这样的特殊字符?

vbscript chr
1个回答
1
投票

您应该使用

Chr()
函数发送
é
的ANSI字符代码,而不是:

set ws = CreateObject("WScript.shell")
ws.SendKeys chr(233)

这是完整的代码示例:

Dim i,x,a,ws
i = InputBox("Entrer un caractère ou une phrase pour obtenir son Code Unicode Correspondant !","test","éè@!%")
If i <> "" Then
    For x = 1 To Len(i)
        If x <> Len(i) Then
            a = a & "ChrW(" & AscW(Mid(i,x,1)) & ")" & "&"
        Else
            a = a & "ChrW(" & AscW(Mid(i,x,1)) & ")"
        End if
    Next
    Inputbox "Le Code Unicode Correspondant pour " & qq(i) & " est:",,a
End If

wscript.sleep 5000
set ws = CreateObject("WScript.shell")
ws.SendKeys qq(i)
'******************************************************************
Function qq(strIn)
    qq = Chr(34) & strIn & Chr(34)
End Function
'******************************************************************
© www.soinside.com 2019 - 2024. All rights reserved.