cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Serg24
Frequent Visitor

Passing keyboard shortcuts to Power Automate desktop

Hi all, 

 

I'm automating SAP application and in order to be 100% sure that my automation clicks on the correct element, I want to use SAP shortcuts (for instance, "Shift+F5" and so on). Could someone help me to understand how I can make Power Automate desktop understand them? If some specific syntax is used, I would appreciate if you share the link to the whole list (including Ctrl, Alt, and so on) and provide and example for Shift+F5 combination (because often I need to combine more that 1 shortcut).

 

I thought about using an Action "Send keys" but, as I understood it receives a string input, meaning when typing Shift I would not pass a Shift button, but 5 keys. "S", "h", "i", "f" and "t".

 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
adijain
Microsoft
Microsoft

Hello @Serg24

 

The "Send Keys" Action sends keystrokes to the application that is currently active. It can either be sent in the background as a software input or can be mimicked like from a keyboard when sent as hardware keys. To simulate key-presses inside a Send Keys Action, use the following notation: {KeyCode}. where KeyCode is the capital form of the letter itself for letters A-Z. OemSemicolon for ';', Oemplus for '+', Oemcomma for ',', OemMinus for '-', OemPeriod for '.', OemQuestion for '?', Oemtilde for '~', OemOpenBrackets for '[', OemPipe for '|', etc. 

 

Further {KeyCode1}({KeyCode2}) would send a combination of the keys {KeyCode1} + {KeyCode2}.

 

In your case for the key combination SHIFT + F5 you would need to use this key code: {Shift}({F5})

 

Please find the full list of valid key codes below:

Full List of Valid Key Codes

LButton
RButton
Cancel
MButton
XButton1
XButton2
Back
Tab
LineFeed
Clear
Enter
Return
ShiftKey
ControlKey
Menu
Pause
CapsLock
Capital
HangulMode
HanguelMode
KanaMode
JunjaMode
FinalMode
KanjiMode
HanjaMode
Escape
IMEConvert
IMENonconvert
IMEAccept
IMEAceept
IMEModeChange
Space
Prior
PageUp
PageDown
Next (Page Down)
End
Home
Left
Up
Right
Down
Select
Print
Execute
Snapshot
PrintScreen
Insert
Delete
Help
BrowserSearch
BrowserFavorites
BrowserHome
VolumeMute
VolumeDown
VolumeUp
MediaNextTrack
MediaPreviousTrack
MediaStop
MediaPlayPause
LaunchMail
SelectMedia
LaunchApplication1
LaunchApplication2
OemSemicolon
Oem1
Oemplus
Oemcomma
OemMinus
OemPeriod
Oem2
OemQuestion
Oem3
Oemtilde
Oem4
OemOpenBrackets
OemPipe
Oem5
OemCloseBrackets
Oem6
OemQuotes
Oem7
Oem8
Oem102
OemBackslash
ProcessKey
Packet
Attn
Crsel
Exsel
EraseEof
Play
Zoom
NoName
Pa1
OemClear
KeyCode
Shift
Control
Alt
Modifiers
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
LWin
RWin
Apps (Menu key)
Sleep
NumPad0
NumPad1
NumPad2
NumPad3
NumPad4
NumPad5
NumPad6
NumPad7
NumPad8
NumPad9
Multiply
Add
Separator
Subtract
Decimal
Divide
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
NumLock
Scroll
LShiftKey
RShiftKey
LControlKey
RControlKey
LMenu
RMenu
BrowserBack
BrowserForward
BrowserRefresh
BrowserStop

View solution in original post

10 REPLIES 10
adijain
Microsoft
Microsoft

Hello @Serg24

 

The "Send Keys" Action sends keystrokes to the application that is currently active. It can either be sent in the background as a software input or can be mimicked like from a keyboard when sent as hardware keys. To simulate key-presses inside a Send Keys Action, use the following notation: {KeyCode}. where KeyCode is the capital form of the letter itself for letters A-Z. OemSemicolon for ';', Oemplus for '+', Oemcomma for ',', OemMinus for '-', OemPeriod for '.', OemQuestion for '?', Oemtilde for '~', OemOpenBrackets for '[', OemPipe for '|', etc. 

 

Further {KeyCode1}({KeyCode2}) would send a combination of the keys {KeyCode1} + {KeyCode2}.

 

In your case for the key combination SHIFT + F5 you would need to use this key code: {Shift}({F5})

 

Please find the full list of valid key codes below:

Full List of Valid Key Codes

LButton
RButton
Cancel
MButton
XButton1
XButton2
Back
Tab
LineFeed
Clear
Enter
Return
ShiftKey
ControlKey
Menu
Pause
CapsLock
Capital
HangulMode
HanguelMode
KanaMode
JunjaMode
FinalMode
KanjiMode
HanjaMode
Escape
IMEConvert
IMENonconvert
IMEAccept
IMEAceept
IMEModeChange
Space
Prior
PageUp
PageDown
Next (Page Down)
End
Home
Left
Up
Right
Down
Select
Print
Execute
Snapshot
PrintScreen
Insert
Delete
Help
BrowserSearch
BrowserFavorites
BrowserHome
VolumeMute
VolumeDown
VolumeUp
MediaNextTrack
MediaPreviousTrack
MediaStop
MediaPlayPause
LaunchMail
SelectMedia
LaunchApplication1
LaunchApplication2
OemSemicolon
Oem1
Oemplus
Oemcomma
OemMinus
OemPeriod
Oem2
OemQuestion
Oem3
Oemtilde
Oem4
OemOpenBrackets
OemPipe
Oem5
OemCloseBrackets
Oem6
OemQuotes
Oem7
Oem8
Oem102
OemBackslash
ProcessKey
Packet
Attn
Crsel
Exsel
EraseEof
Play
Zoom
NoName
Pa1
OemClear
KeyCode
Shift
Control
Alt
Modifiers
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
LWin
RWin
Apps (Menu key)
Sleep
NumPad0
NumPad1
NumPad2
NumPad3
NumPad4
NumPad5
NumPad6
NumPad7
NumPad8
NumPad9
Multiply
Add
Separator
Subtract
Decimal
Divide
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
NumLock
Scroll
LShiftKey
RShiftKey
LControlKey
RControlKey
LMenu
RMenu
BrowserBack
BrowserForward
BrowserRefresh
BrowserStop
Serg24
Frequent Visitor

Thank you very much, @adijain! This is exactly what I was looking for!
Would be nice if this explanation can be added to the official documentation on Send Keys.

Thanks for this answer. I am struggling with using MS Word. I want to find and replace my text in a file. So the keyboard shortcut is Control+H

I entered a Send Keys of  {Control}(H)

 

It does not seem to work. I am generally finding word hard to work with. Id tried it with UI elements, but when you create a new file it seems to forget what the UI is. For example Save,or New just fail in new docs. Is keyboard shortcuts the way to go, and what am I doing wrong in my example above?

Serg24
Frequent Visitor

Hi @Pmorg73 ,

I've just tested Ctrl+H combination and it works fine. It seems that you forgot to add curve brackets around H, so your expression should be: {Control}({H}), where {Control} and {H} are keys you want to pass and () around {H} is used for passing 2 different keys simultaneously. 

To work with UI elements, that are not created at the moment of a flow start, I suggest you to use variables in path definition.  It should give you a new UI element that you can use later on.

@Serg24 I am trying to send 9x {Control}({Next}) in a row to an Excel spreadsheet that has just been opened via automation. This is to navigate through Excel sheet tabs, as I can't figure out how to do so otherwise. 

 

I am unable to get the keystrokes sent to the Excel spreadsheet however. How can I direct the keystrokes to the correct window? I can easily send text to certain cells in the spreadsheet, but apparently that action is not enough to designate the spreadsheet as the active window. 

 

EDIT: I figured it out, I used "Set Active Excel Worksheet" to designate the correct sheet tab. 

maximed
Frequent Visitor

Hello,

 

In Excel I would like to apply the key combination Crtl Alt F5 to update data from source file

I can't do it.

 

I try : {Control}({Alt}{F5})

Does anyone have a solution?

 

 

Thank

Max

 

I will show you an example, maybe this will help 

{F}{End}{Up:4}{Enter}{Right}{Home}{Down:7}{Enter}

See bold above for how to send the same key multiple times

JasonM72
Frequent Visitor

Max, I had the same issue and did two things.  Ensure Send text as hardware keys is active.  And you need to use this as the text to send - Double nesting from the left one step at a time.   {Control}({Alt}({F5}))UIUICode for UI TextCode for UI Text

Pmorg73
Helper II
Helper II

Hi. Just stumbled back on this thread and I have a situation where I can not get it to work. The process I am automating is to open a Power BI report, then hit Control P to print. There is no UI Element for this so need to use the keyboard send keys

 

Has anyone every tried to Control P in a software? It is just not doing it

{Control}{(P)}

Has told me there was no active application. I then tried to capture the window in the flow step, but it does not seem to work.

 

Any advice?

av00
Frequent Visitor

Thanks

Helpful resources

Announcements
 WHAT’S NEXT AT MICROSOFT IGNITE 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Register for a Free Workshop.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

September Events 2022

Check out all of these events

Attend in person or online, there are incredible conferences and events happening all throughout the month of September.

Top Kudoed Authors
Users online (3,389)