> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/rdm/knowledge-base/how-to-articles/entry-types-events-settings/event-auto-typing-macro.md).

# Event auto typing macro

The ***Typing macro*** automatically executes once a connection has been established.

![](https://cdnweb.devolutions.net/docs/RDMW6010_2025_1.png)

Typing macros can also be added in the ***Login button ID*** field of a website entry.

![](https://cdnweb.devolutions.net/docs/docs_en_kb_KB6163.png)

### Typing macro

Keyboard keys are represented by predefined tags between braces. To specify a single keyboard character, use the character itself without braces. For example, represent the letter ***A*** by typing the "A" character in the typing macro. To represent more than one character, such as ***Hello***, append each additional character to the preceding one: "Hello".

### Special keys

To specify characters that are not displayed when you press a key, such as <kbd>Enter</kbd> or <kbd>Tab</kbd>, as well as the keys that represents actions rather than characters, refer to the codes in the following table.

| KEY                                           | CODE                    |
| --------------------------------------------- | ----------------------- |
| <kbd>Backspace</kbd>                          | {BACKSPACE}/{BS}/{BKSP} |
| <kbd>Break</kbd>                              | {BREAK}                 |
| <kbd>Caps lock</kbd>                          | {CAPSLOCK}              |
| <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> | {CTRL-ALT-DEL}          |
| <kbd>Del</kbd>/<kbd>Delete</kbd>              | {DEL}/{DELETE}          |
| <kbd>Down</kbd> (arrow)                       | {DOWN}                  |
| <kbd>End</kbd>                                | {END}                   |
| <kbd>Entrée</kbd>                             | {ENTER}                 |
| <kbd>Esc</kbd>                                | {ESC}                   |
| <kbd>Help</kbd>                               | {HELP}                  |
| <kbd>Home</kbd>                               | {HOME}                  |
| <kbd>Ins</kbd>/<kbd>Insert</kbd>              | {INS}/{INSERT}          |
| <kbd>Add</kbd> (keypad)                       | {ADD}                   |
| <kbd>Divide</kbd> (keypad)                    | {DIVIDE}                |
| <kbd>Multiply</kbd> (keypad)                  | {MULTIPLY}              |
| <kbd>Substract</kbd> (keypad)                 | {SUBTRACT}              |
| <kbd>Left</kbd> (arrow)                       | {LEFT}                  |
| <kbd>Num lock</kbd>                           | {NUMLOCK}               |
| <kbd>Page down</kbd>                          | {PGDN}                  |
| <kbd>Page up</kbd>                            | {PGUP}                  |
| <kbd>Print screen</kbd>                       | {PRTSC}                 |
| <kbd>Right</kbd> (arrow)                      | {RIGHT}                 |
| <kbd>Scroll lock</kbd>                        | {SCROLLOCK}             |
| <kbd>Tab</kbd>                                | {TAB}                   |
| <kbd>Up</kbd> (arrow)                         | {UP}                    |
| <kbd>F1</kbd>                                 | {F1}                    |
| <kbd>F2</kbd>                                 | {F2}                    |
| <kbd>F3</kbd>                                 | {F3}                    |
| <kbd>F4</kbd>                                 | {F4}                    |
| <kbd>F5</kbd>                                 | {F5}                    |
| <kbd>F6</kbd>                                 | {F6}                    |
| <kbd>F7</kbd>                                 | {F7}                    |
| <kbd>F8</kbd>                                 | {F8}                    |
| <kbd>F9</kbd>                                 | {F9}                    |
| <kbd>F10</kbd>                                | {F10}                   |
| <kbd>F11</kbd>                                | {F11}                   |
| <kbd>F12</kbd>                                | {F12}                   |
| <kbd>F13</kbd>                                | {F13}                   |
| <kbd>F14</kbd>                                | {F14}                   |
| <kbd>F15</kbd>                                | {F15}                   |
| <kbd>F16</kbd>                                | {F16}                   |

To specify keys combined with any combination of the <kbd>Shift</kbd>, <kbd>Ctrl</kbd>, and <kbd>Alt</kbd> keys, precede the key code with one or more of the following signs.

| KEY              | CODE                        |
| ---------------- | --------------------------- |
| <kbd>Alt</kbd>   | {ALT}, {LALT}, {RALT}       |
| <kbd>Ctrl</kbd>  | {CTRL}, {LCTRL}, {RCTRL}    |
| <kbd>Shift</kbd> | {SHIFT}, {LSHIFT}, {RSHIFT} |
| <kbd>Win</kbd>   | {LWIN}, {RWIN}              |

To specify that any combination of the <kbd>Shift</kbd>, <kbd>Ctrl</kbd>, and <kbd>Alt</kbd> keys should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down <kbd>Shift</kbd> while <kbd>E</kbd> and <kbd>C</kbd> are pressed, use "{SHIFT}(EC)". To specify to hold down <kbd>Shift</kbd> while <kbd>E</kbd> is pressed, followed by <kbd>C</kbd>, without <kbd>Shift</kbd>, use "{SHIFT}EC".

### Special commands

| COMMANDS                                                 | DESCRIPTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| {CLIPBOARD}                                              | Pastes the current system clipboard text at the exact position of the command during macro execution. The clipboard content is read at execution time rather than when the macro is created or launched, ensuring that the most recent copied text is always used.                                                                                                                                                                                                                          |
| {CTRL-ALT-DEL}                                           | Sends the key combination <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>DEL</kbd>.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| {DELAY}                                                  | Introduces a delay before the next command. The default delay is 300 ms, and this value can be configured in specific contexts.                                                                                                                                                                                                                                                                                                                                                             |
| {DELAY:???}                                              | Introduces a delay of the specified duration (in milliseconds) before the next command.                                                                                                                                                                                                                                                                                                                                                                                                     |
| {PREV-WINDOW}                                            | Selects the previously active window before executing the remaining commands.                                                                                                                                                                                                                                                                                                                                                                                                               |
| {SENDKEYS} {ENDSENDKEYS}                                 | Used in combination with the {ENDSENDKEYS} command. The text enclosed between these commands is executed using [.NET's default SendKey API](https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys?view=windowsdesktop-8.0), which does not support Remote Desktop Manager-specific commands listed in this topic. This command is typically used in scenarios where the typing macro feature does not support certain actions, but the default .NET SendKeys API does. |
| {WAITFORWINDOW:????} and {WAITFORWINDOW:???;TIMEOUT:???} | Waits until a window with the specified title is detected. A timeout can be defined to proceed with the macro if the window is not found within the given time limit. If no timeout is specified, the default value is 10,000 ms.                                                                                                                                                                                                                                                           |
| {WINDOW:???}                                             | Focuses a window containing the specified name after the colon.                                                                                                                                                                                                                                                                                                                                                                                                                             |

### Macro password

{% hint style="info" %}
The **Allow password in variable** setting must be enabled in the **Security settings** of the entry.
{% endhint %}

You can define a password to be used within the typing macro exclusively. Use the variable $MACRO\_PASSWORD$ to access the password.

#### See also

* [Auto typing macro not working in RDP entry](https://docs.devolutions.net/rdm/kb/troubleshooting-articles/auto-typing-macro-not-working-rdp/)
* [Devolutions Academy - Automating tasks with scripts and macros](https://academy.devolutions.net/student/path/1925316/activity/2668004)
* [Devolutions Academy - Configure event auto typing macros in Remote Desktop Manager](https://academy.devolutions.net/student/page/3146572-configure-event-auto-typing-macros-in-remote-desktop-manager?curriculum_activity_id=4878617\&path_id=2628397\&sid=d7519f7e-923c-40d5-8992-ab3472979ace\&sid_i=0)
* [Devolutions Academy - Streamlining remote connections with event triggers](https://academy.devolutions.net/student/path/1925316/activity/2668000)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.devolutions.net/rdm/knowledge-base/how-to-articles/entry-types-events-settings/event-auto-typing-macro.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
