How to send CTRL or ALT + any other key?

2019-01-17 17:38发布

问题:

I have powershell script which will open web page (Selenium) and set focus on the "Message" box. Now, I want to simulate Ctrl+V to paste my data from clipboard. Is there any way to do that in pure powershell? An C# code that can be used in powershell function would be also great.

回答1:

You can send the modifier key combination Ctrl+C like this:

[void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
[System.Windows.Forms.SendKeys]::SendWait("^{c}") 

From article Converting the Windows Script Host SendKeys Method

The modifier keys are:

Key  | Code
-----------
SHIFT  +
CTRL   ^
ALT    %

Other keys you might want:

Key  | Code
-----------
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}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW    {UP}
F1  {F1}
F2  {F2}
F3  {F3}
F4  {F4}
F5  {F5}
F6  {F6}
F7  {F7}
F8  {F8}
F9  {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
Keypad add  {ADD}
Keypad subtract {SUBTRACT}
Keypad multiply {MULTIPLY}
Keypad divide   {DIVIDE}


回答2:

A bit dry to read, but maybe reading C#'s docs on using what's on the clipboard might help:

http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard%28v=vs.110%29.aspx