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!
Solved! Go to Solution.
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 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 |
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 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 |
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?
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.
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
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}))UI
Code for UI Text
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?
Thanks