Как отправить CTRL или ALT + любой другой ключ?

У меня есть powershell script, который откроет веб-страницу (Selenium) и настроит фокус на поле "Сообщение". Теперь я хочу моделировать Ctrl + V для вставки моих данных из буфера обмена. Есть ли способ сделать это в чистой powershell? Также будет полезен код С#, который может использоваться в функции powershell.

Ответ 1

Вы можете отправить комбинацию клавиш-модификаторов Ctrl + C следующим образом:

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

Из статьи Преобразование Windows Script Метод SendKeys хоста

Ключи-модификаторы:

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

Другие ключи, которые могут вам понадобиться:

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}