> 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/es/knowledge-base/how-to-articles/entry-types-events-settings/event-auto-typing-macro.md).

# Macro de escritura automática de eventos

Cree macros de escritura automática en Remote Desktop Manager para enviar automáticamente pulsaciones de teclas y teclas especiales una vez que se abra la conexión de una sesión.

Las macros de escritura se ejecutan automáticamente una vez establecida la conexión. En las ***Propiedades*** de una entrada de sesión, vaya a la sección ***Eventos***, haga clic en la pestaña ***Después de abrir*** e introduzca sus macros personalizadas en el campo de texto ***Macros de escritura***. Haga clic en ***Guardar*** para aplicar sus cambios.

Las macros de escritura también se pueden añadir en el campo ***ID del botón de inicio de sesión*** de una entrada de sitio web.

### Macro de escritura

Las teclas del teclado se representan mediante etiquetas predefinidas entre llaves. Para especificar un único carácter del teclado, utilice el propio carácter sin llaves. Por ejemplo, represente la letra ***A*** escribiendo el carácter "A" en la macro de escritura. Para representar más de un carácter, como ***Hello***, añada cada carácter adicional al anterior: "Hello".

### Teclas especiales

Para especificar caracteres que no se muestran al pulsar una tecla, como <kbd>Enter</kbd> o <kbd>Tab</kbd>, así como las teclas que representan acciones en lugar de caracteres, consulte los códigos de la siguiente tabla.

| TECLA                                         | CÓDIGO                  |
| --------------------------------------------- | ----------------------- |
| <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> (flecha)                      | {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> (teclado numérico)             | {ADD}                   |
| <kbd>Divide</kbd> (teclado numérico)          | {DIVIDE}                |
| <kbd>Multiply</kbd> (teclado numérico)        | {MULTIPLY}              |
| <kbd>Substract</kbd> (teclado numérico)       | {SUBTRACT}              |
| <kbd>Left</kbd> (flecha)                      | {LEFT}                  |
| <kbd>Num lock</kbd>                           | {NUMLOCK}               |
| <kbd>Page down</kbd>                          | {PGDN}                  |
| <kbd>Page up</kbd>                            | {PGUP}                  |
| <kbd>Print screen</kbd>                       | {PRTSC}                 |
| <kbd>Right</kbd> (flecha)                     | {RIGHT}                 |
| <kbd>Scroll lock</kbd>                        | {SCROLLOCK}             |
| <kbd>Tab</kbd>                                | {TAB}                   |
| <kbd>Up</kbd> (flecha)                        | {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}                   |

Para especificar teclas combinadas con cualquier combinación de las teclas <kbd>Shift</kbd>, <kbd>Ctrl</kbd> y <kbd>Alt</kbd>, anteponga al código de la tecla uno o varios de los siguientes signos.

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

Para especificar que cualquier combinación de las teclas <kbd>Shift</kbd>, <kbd>Ctrl</kbd> y <kbd>Alt</kbd> debe mantenerse pulsada mientras se pulsan varias otras teclas, encierre el código de esas teclas entre paréntesis. Por ejemplo, para especificar que se mantenga pulsada <kbd>Shift</kbd> mientras se pulsan <kbd>E</kbd> y <kbd>C</kbd>, utilice "{SHIFT}(EC)". Para especificar que se mantenga pulsada <kbd>Shift</kbd> mientras se pulsa <kbd>E</kbd>, seguida de <kbd>C</kbd>, sin <kbd>Shift</kbd>, utilice "{SHIFT}EC".

### Comandos especiales

| COMANDOS                                                 | DESCRIPCIÓN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| {CLIPBOARD}                                              | Pega el texto actual del portapapeles del sistema en la posición exacta del comando durante la ejecución de la macro. El contenido del portapapeles se lee en el momento de la ejecución y no cuando se crea o se inicia la macro, lo que garantiza que siempre se utilice el texto copiado más reciente.                                                                                                                                                                                                                                 |
| {CTRL-ALT-DEL}                                           | Envía la combinación de teclas <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>DEL</kbd>.                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| {DELAY}                                                  | Introduce un retardo antes del siguiente comando. El retardo predeterminado es de 300 ms, y este valor se puede configurar en contextos específicos.                                                                                                                                                                                                                                                                                                                                                                                      |
| {DELAY:???}                                              | Introduce un retardo de la duración especificada (en milisegundos) antes del siguiente comando.                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| {PREV-WINDOW}                                            | Selecciona la ventana activa anteriormente antes de ejecutar los comandos restantes.                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| {SENDKEYS} {ENDSENDKEYS}                                 | Se utiliza en combinación con el comando {ENDSENDKEYS}. El texto incluido entre estos comandos se ejecuta mediante la [API SendKey predeterminada de .NET](https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys?view=windowsdesktop-8.0), que no admite los comandos específicos de Remote Desktop Manager enumerados en este tema. Este comando se utiliza normalmente en situaciones en las que la función de macro de escritura no admite determinadas acciones, pero la API SendKeys predeterminada de .NET sí. |
| {WAITFORWINDOW:????} and {WAITFORWINDOW:???;TIMEOUT:???} | Espera hasta que se detecte una ventana con el título especificado. Se puede definir un tiempo de espera para continuar con la macro si la ventana no se encuentra dentro del límite de tiempo indicado. Si no se especifica ningún tiempo de espera, el valor predeterminado es 10.000 ms.                                                                                                                                                                                                                                               |
| {WINDOW:???}                                             | Enfoca una ventana que contenga el nombre especificado después de los dos puntos.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

### Contraseña de macro

{% hint style="info" %}
La opción **Permitir contraseña en variable** debe estar activada en la **Configuración de seguridad** de la entrada.
{% endhint %}

Puede definir una contraseña para utilizarla exclusivamente dentro de la macro de escritura. Utilice la variable $MACRO\_PASSWORD$ para acceder a la contraseña.

#### Consulte también

* [La macro de escritura automática no funciona en una entrada RDP](/rdm/es/knowledge-base/troubleshooting-articles/auto-typing-macro-not-working-in-rdp-entry.md)
* [Devolutions Academy - Automatizar tareas con scripts y macros](https://academy.devolutions.net/student/path/1925316/activity/2668004)
* [Devolutions Academy – Automatización integrada: scripts de PowerShell y macros](https://academy.devolutions.net/student/activity/3380125)
* [Devolutions Academy - Configurar macros de escritura automática de eventos en 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 - Optimizar las conexiones remotas con desencadenadores de eventos](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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
