2012-05-23 42 views
1

我完全不熟悉PowerShell,并且对其某些命令语法感到困惑。我一直在寻找谷歌;然而,我发现的一些语法如C#命令中的PowerShell

Send-Keys "%(ea)Testing{Enter}{F5}" 

有错误,我似乎无法摆脱。

说我打开与

var script = @" 
       Start-Process calc.exe 
      "; 

powerShell.AddScript(script);   
powerShell.Invoke(); 

计算器一个人如何去在值输入字段和发送按键? 也就是输入5,点击 - 键,输入6,然后按ENTER键?

甚至更​​好, 如何使用PowerShell输入一些股票代码(这不是默认文本字段),然后通过点击回车进行搜索? (打开firefox.exe,导航到www.yahoo.com)之后

谢谢您的时间

+0

什么是你想与网页呢?显示或解析它? –

回答

3
Key     SendKeys 
BACKSPACE   {BACKSPACE}, {BS}, or {BKSP} 
BREAK    {BREAK} 
CAPS LOCK   {CAPSLOCK} 
DEL or DELETE  {DELETE} or {DEL} 
DOWN ARROW   {DOWN} 
END     {END} 
ENTER    {ENTER} or ~ 
ESC     {ESC} 
HELP     {HELP} 
HOME     {HOME} 
INS or INSERT  {INSERT} or {INS} 
LEFT ARROW   {LEFT} 
NUM LOCK    {NUMLOCK} 
PAGE DOWN   {PGDN} 
PAGE UP    {PGUP} 
PRINT SCREEN   {PRTSC} 
RIGHT ARROW   {RIGHT} 
SCROLL LOCK   {SCROLLLOCK} 
TAB     {TAB} 
UP ARROW    {UP} 
SHIFT    +     
CONTROL   ^    
ALT     %     
BACKSPACE   {BACKSPACE}, {BS}, or {BKSP} 

有一点要记住的是,它需要一段时间的应用程序启动,你可以在计算器准备好之前发送你的密钥。

尝试类似:

add-type -AssemblyName microsoft.VisualBasic 
add-type -AssemblyName System.Windows.Forms 

Calc 

start-sleep -Milliseconds 500 

[Microsoft.VisualBasic.Interaction]::AppActivate("Calc") 
[System.Windows.Forms.SendKeys]::SendWait("1{ADD}1=") 

这应该让你从谷歌报价:

$IE=new-object -com internetexplorer.application 
$IE.navigate2("https://www.google.co.uk/finance?client=ob&q=NASDAQ:MSFT") 
$IE.visible=$true 
+0

嘿,感谢您的回复,有没有什么方法可以保证只有在上一个命令完成后才发送密钥? –

+0

我怀疑这一点 - 你所做的只是将按键转储到一个黑盒子里 - 如果你担心碰撞,我会使用睡眠。 –

+0

您必须使用start-sleep命令行开关等待程序启动。上面的例子只等了500毫秒,因为计算器很快就会启动。 “开始 - 睡眠4”将等待4秒钟。 – LukeP

1

我不能去www.yahoo.com,因为它会自动重定向我到英国。 yahoo.com。

然而,我能够去http://finance.yahoo.com并做到你想要的。

有点难看,并且依赖于页面布局,但它似乎是工作:

add-type -AssemblyName microsoft.VisualBasic 
add-type -AssemblyName System.Windows.Forms 

& 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' -url http://finance.yahoo.com 

start-sleep 3 

[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}FB{ENTER}")