C# 命令中的 PowerShell

本文关键字:PowerShell 命令 | 更新日期: 2023-09-27 18:35:04

我对PowerShell完全陌生,对它的一些命令语法感到困惑。我一直在谷歌周围寻找;但是,我发现的一些语法例如

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

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

假设我打开计算器

var script = @" 
                Start-Process calc.exe
            ";
powerShell.AddScript(script);          
powerShell.Invoke();

如何输入字段的值并发送击键?也就是说,输入 5,按 - 键,输入 6,然后按 ENTER 键?

甚至更好,如何使用PowerShell输入一些股票代码(不是默认文本字段),然后按回车键进行搜索?(打开火狐.exe后,导航到 www.yahoo.com)

谢谢你的时间

C# 命令中的 PowerShell

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

我不能去 www.yahoo.com,因为它会自动将我重定向到 uk.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}")