2016-06-21 104 views
1

我试图使用SendKeys发送一些特殊字符,例如é使用VBscript发送特殊字符“é”SendKey

如果我使用

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

可以肯定它不会工作...

我在想,解释字符使用asc("é"),得到其结果是chr(233),然后mySendKeys.SendKeys chr(233)

听起来不错?但它会产生一个错误Invalid procedure call or argument

我发现了一个类似的问题here

或者是否有任何其他方式来模拟键盘输入像这样的特殊字符?

+0

这不是键盘上的一个键,不会有一个虚拟键码。 SendKeys不具有国际意识,并且对大多数问题都没有很好的解决方案。任何测试自动化工具都应该具有更强大的功能,例如Microsoft自己的UI Automation。 –

+0

我注意到你把这个标记为UFT问题。是否有特殊的理由使用'SendKeys'而不是使用对象的'.Set'方法?正如@Cody所述,'SendKeys'是一个糟糕的解决方案,我会避免它 –

回答

1

你应该尝试一下这样的:

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 
'****************************************************************** 
+0

这就是我正在尝试... – nwpulele

+0

@nwpulele我不明白你的目标,但无论如何,尝试我的编辑! – Hackoo

+0

感谢您的帮助!我执行你的代码,它只输出'“@!'似乎仍然不能发送'éè'和'%'丢失...我会继续尝试... – nwpulele