powershellkey

How can I send Ctrl or Alt + any other key?


I have a 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 the clipboard. Is there a way to do that in pure PowerShell code?

C# code that can be used in PowerShell function would be also great.


Solution

  • 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}