如何使用SendKeys

时间:2015-10-17 21:28:42

标签: windows powershell sendkeys

$a = [char]65
$w1 = New-Object -ComObject wscript.shell;
$w1.AppActivate('Untitled - Notepad') 
Sleep 1
Write-Host $a
$w1.SendKeys($a);

在PowerShell脚本中,我尝试使用SendKeys命令通过将变量A强制转换为$a并将值[char]显示在记事本中65。当我运行该行时,这给了我预期的结果:

Write-Host $a

(PowerShell中出现A

但是无论何时运行以下行:

$w1.SendKeys($a);

将数字65放入记事本而不是A

为什么这两行在给定相同参数时会产生不同的输出?如何在两种情况下使变量$a输出字符A

1 个答案:

答案 0 :(得分:2)

由于char是整数类型,SendKeys$a视为整数。您可以直接传递65来获得相同的行为:

$w1.SendKeys(65); # Sends "65" to Notepad

要解决此问题,您需要明确地给SendKeys一个字符串参数。最简单的方法是将$a括在引号中:

$w1.SendKeys("$a");