
Si en el artículo anterior vimos cómo copiar el nombre de los archivos seleccionados, ahora es el turno de copiar la ruta del Explorador de archivos con AutoHotkey.
Atento, porque será una continuación del anterior artículo y, «por el mismo precio», podrás copiar la ruta y los nombres de archivo.
Para qué sirve copiar la ruta
Un caso práctico y muy común para copiar la ruta desde el Explorador de archivos es pegarla después en otra aplicación, por ejemplo, en un cuadro de diálogo de Guardar como de Microsoft Word. De esta forma te evitas tener que buscar la ruta completa, que, si es larga, invita a equivocarse a menudo, además de que tardarás mucho más.
Por ejemplo, suponiendo que ya tienes en el Portapapeles la ruta:
C:\carpeta 1
entonces podrás pegar esta ruta en el cuadro de diálogo Abrir de Microsoft Word:

Por si no lo sabías, esta es la forma más rápida para llevar la ruta desde el Explorador de archivos a otra aplicación.
Sin hacer una lista exhaustiva, piensa en esta utilidad para los siguientes cuadros de diálogo:
- Abrir;
- Guardar como;
- Guardar imagen (navegador);
- Guardar enlace como (navegador);
- Ejecutar (Windows)
Es una tarea que haré unas 30 veces al día, así que, si estás en mi misma situación, te interesa mucho copiar rutas lo más rápido posible.
Aclarada su utilidad, entramos en materia.
⁂
Métodos tradicionales para copiar la ruta
Antes de ver la forma de copiar la ruta mediante AutoHotkey, repasaremos las distintas posibilidades que tienes desde que Windows existe, es decir, simplemente usando teclado y ratón:
1.ª forma: solo con el ratón
Para copiar la ruta con el ratón, solo tienes que colocar el ratón en la barra de direcciones de la ventana de Explorador de archivos, hacer clic derecho, y seleccionar Copiar en el menú emergente.

Fácil, ¿verdad?
2.ª forma: solo con el teclado
Si te encantan los atajos de teclado, los habidos y por haber, ¡esta es tu forma para copiar la ruta!
Con una ventana activa de Explorador de archivos:
- pulsa la combinación de teclas CTRL+L
(Ojo: también sirve ALT+D ), - pulsa la combinación de teclas CTRL+C para copiar la ruta al Portapapeles.
3.ª forma: teclado y ratón
Por supuesto, hay formas híbridas: primero hacer clic con el ratón en la barra de direcciones y luego pulsar CTRL+C .
Para mi gusto, más raro sería pulsar CTRL+L (o ALT+D ) y hacer clic derecho para seleccionar Copiar en el menú emergente, ¡pero nada lo impide!
⁂
Copiar la ruta con AutoHotkey
1. Posibilidades
Si solo quieres la macro de AutoHotkey, puedes saltarte esta sección, porque es solo curiosidad. Pero si quieres aprender más sobre AutoHotkey, te recomiendo que la leas.
Como sabrás, no suele haber un único camino para programar cualquier cosa. Y lo de copiar la ruta del Explorador de archivos es un caso más…
Te diré que, durante muchos meses, mi macro de AutoHotkey para copiar la ruta recreaba los atajos de teclado mencionados arriba; es decir, CTRL+L para seleccionar la barra de direcciones y CTRL+C para copiar.
En AutoHotkey, esto sería así:
Send ^l Send ^c
Este código funciona, esa es la verdad, pero lo cierto es que:
- se veía que se seleccionaba la barra de direcciones del Explorador de Archivos;
- Se empleaba el Portapapeles de Windows, un punto que si se puede evitar, mejor que mejor.
Por estos dos motivos, mi macro sigue otra forma, que es la que muestro en el artículo:
2. La macro de AutoHotkey para copiar la ruta
Si recuerdas, en el anterior artículo copiábamos los nombre de archivos seleccionado pulsando la tecla F12 . Pues bien, ahora ampliaremos esta función para que la tecla F12 dentro del Explorador de archivos sirva además para copiar la ruta.
Como siempre, primero tienes la macro, a continuación, el enlace para descargártela y, finalmente, analizamos la macro por si quieres cambiarla a tu gusto.
La macro de AutoHotkey para copiar la ruta es:
; Copiar la ruta de Explorador de archivos
; https://www.gonduana.com/como-copiar-la-ruta-del-explorador-de-archivos-con-autohotkey
#IfWinActive ahk_exe explorer.exe
F12 up::
MouseGetPos, , , , miControl
controlesParteSuperior := "NetUIHWND1 UIRibbonWorkPane1 ToolbarWindow323 DirectUIHWND1 ToolbarWindow324 ToolbarWindow321 Edit1 UpBand1 DirectUIHWND2"
if (miControl = "DirectUIHWND3")
CopiarNombreArchivosExplorador()
else if InStr(controlesParteSuperior, miControl)
CopiarRutaExplorador()
return
CopiarNombreArchivosExplorador()
{
clipboard =
SendInput, {Control Down}c{Control Up}
ClipWait, 0
Clipboard := RegExReplace(Clipboard, "m)^.+\\", "")
Sort, Clipboard
MsgBox, 64, Copiados nombres de archivos, %Clipboard%
}
CopiarRutaExplorador()
{
ControlGetText, ruta, ToolbarWindow323, A
posición := InStr(ruta, ": ")
ruta := SubStr(ruta, posición+2) ;
Clipboard := ruta
MsgBox, 64, Copiada la ruta actual, %Clipboard%
}
#IfWinActive
Te la puedes descargar desde aquí:
Análisis de la macro de AutoHotkey
Como tiene líneas idénticas igual al código del artículo para copiar los nombres de archivo seleccionados, te recomiendo que te lo leas antes de continuar.
La macro se dispara al liberar la tecla F12 (línea 4).
En la línea 5, se emplea la función MouseGetPos para guardar en la variable miControl el nombre del control que está justo debajo del puntero del ratón.
En la línea 6 se asigna una cadena de nombres de controles del Explorador de archivos a la variable controlesParteSuperior.
- ¿Qué tienen en común estos controles? Pues que están en la parte superior del Explorador de archivos.
- ¿Para qué? Para diferenciar si el ratón está en la parte superior de la ventana, entonces se copiará la ruta, o si está en el panel derecho, en cuyo caso se copiará los nombre de archivo seleccionados.
☛ Si no sabes qué son esos nombres raros de la línea 6, mírate la parte de Window Spy del artículo anterior.
Lo dicho: En la línea 7 comprobamos si el ratón está en el panel derecho, en cuyo caso se ejecuta la función CopiarNombreArchivosExplorador, que es casi idéntica a la que vimos en el artículo anterior.
Si el ratón no está en el panel derecho y sí en la parte superior de la ventana (línea 9), entonces se ejecuta la función CopiarRutaExplorador, que la veremos con algo más de detalle.
La función CopiarRutaExplorador comienza en la línea 25, donde se guarda en la variable ruta el valor del control ToolbarWindow323 de la ventana activa. No te despistes: ToolbarWindow323 es el nombre del control de la barra de direcciones). Como al principio de la macro tenemos la directiva IfWinActive ahk_exe explorer.exe, se concluye que se refiere al Explorador de archivos activo.
¿Cuál es valor de la variable ruta?
Pues, siguiendo con el mismo ejemplo de arriba, esto:
Dirección: C:\carpeta 1
o bien, si tienes Windows en inglés, esto otro:
Address: C:\carpeta 1
Da igual el idioma, porque ruta contiene el valor que nos interesa, pero hay que borrar la primera parte. Lo ves, ¿verdad?
Pues eso es justamente lo que consigue en las líneas 27 y 28. En la línea 27, la función InStr busca dos puntos seguidos de un espacio (: ) en la variable ruta y guarda la posición en la variable posición.
En la línea 28, la función SubStr extrae la parte izquierda de la variable ruta desde la posición que diga la variable posición añadiendo 2 unidades, que es lo que ocupa la cadena (: ). En la variable ruta ahora tenemos lo que queremos:
C:\carpeta 1
Así que ahora solo resta copiar esa variable ruta al Portapapeles de Windows (línea 29) y mostrar un mensaje informativo de que se ha copiado (línea 30):

Fácil, ¿verdad?
¿Te atreves a probar la macro o, mejor aún, a cambiarla a tu gusto?
⁂
Conclusiones
Si quieres copiar la ruta del Explorador de Archivos, tienes básicamente 3 posibilidades (elige la que más te convenga):
- CTRL+L , seguido de CTRL+C
- ALT+D , seguido de CTRL+C
- Clic derecho con el ratón en la barra de direcciones y luego CTRL+C .
Ahora bien, si quieres controlar la copia con una sola tecla ( F12 , por ejemplo), entonces, descárgate esta macro para poder copiar tanto la ruta (si el ratón está en la parte superior de la ventana) como los nombres de los archivos seleccionados (si el ratón está sobre el panel derecho del Explorador de archivos).
Por cierto: ¿No crees que podemos aprovechar la misma tecla F12 para copiar el nombre de la carpeta si el ratón está en el panel derecho?
Pues ese será el problema propuesto para el artículo siguiente.
¿Te lo vas a perder?
⁂
Nada más, solo un par de recomendaciones si te interesa leer más sobre AutoHotkey o si quieres estar al tanto de los artículos de Gonduana que continuarán a este:
- Lee los otros artículos de AutoHotkey de este mismo blog. Los tienes todos si filtras por «AutoHotkey» en la nube de etiquetas (columna derecha del blog).
- Suscríbete al boletín del blog, o sígueme en LinkedIn o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.







Es la 1ª vez que accedo a una de sus páginas. Su tratamiento de este script es valiosísimo por la claridad del análisis que sigue al script de la macro.
Yo, principiante en AHK, quisiera ayuda para una macro que haga esto:
Teniendo abierto un archivo (de Word, de Excel etc.) y trabajando en él,
1º- GUARDARLO con la misma ruta y nombre (el clásico SAVE); y luego
2º- Guardarlo también EN UN PENDRIVE donde tengo respaldado ese archivo (el clásico SAVE AS, o bien COPY & PASTE). Por supuesto, el pendrive es siempre el mismo y la ruta y nombre son también los mismos en el disco duro (1ª operación) y en el pendrive (2ª), excepto, claro la letra del disco; o sea:
1ª posición: C:\directorio\subidir\subsubdir\nombre
2ª posición: D:\directorio\subidir\subsubdir\nombre
Una macro AHK que haga eso con cualquier archivo en el que trabajo y quiero rápidamente guardar en el disco y respaldar en el pendrive.
Mil gracias de antemano por cualquier elemento de ayuda o sugerencia.
[Pero, si tiene la bondad de responder algo, ¿cómo sabré dónde verlo?]
Hola, A.:
Me vienen a la cabeza 2 formas para hacerlo.
La primera y más sencilla es imitar lo que hacemos al guardar un documento de Word. Por ejemplo, para guardar el documento, pulsas la combinación de teclas CTRL + G (suponiendo que tienes Word en español). Pues para imitar esto en AutoHotkey, escribes esta línea de código:
Send, ^gPara Guardar como, se empezaría parecido (aunque distinto atajo de teclado), después habría que esperar a que se abriera la ventana Guardar como (esto se hace con la función WinWaitActive), ahí insertar la ruta en la que quieres guardar el documento y finalmente pulsar el botón Guardar. Son más pasos, pero cada uno de ellos es sencillo.
La segunda forma es más complicada, pero más rápida y fiable. Se trata de utilizar un objeto COM. Para guardar, solo serían necesarias estas 2 líneas:
oWord := ComObjActive("Word.Application")oWord.ActiveDocument.Save()
En siguiente enlace tienes información sobre la función que utiliza el objeto COM, y así lo puedes trasladar al Guardar como (SaveAs2): https://learn.microsoft.com/en-us/office/vba/api/word.document.save.
Es posible que escriba un artículo sobre lo que pides, pero no tengo fecha de publicación; por eso espero que estas líneas te sirvan de guía.
¡Suerte!
… Jesús Prieto …
Gracias por su respuesta, tan elaborada.
Con las sugerencias que hace no acierto a conseguir el efecto buscado.
Y me atrevo a proponerle lo siguiente:
Ese efecto (guardar el documento abierto dos veces: en el disco y en un pendrive) yo lo he obtenido con sendos macros de Excel y de Word, pero, claro, sólo para archivos Excel y de Word.
La ventaja de hacerlo por AHK sería que actuaría sobre cualquier archivo abierto (para los de imagen, por ej., me harían ganar mucho tiempo al guardar fotos en los dos sitios).
La propuesta es ésta: si usted está familiarizado con el Visual Basic de Excel o de
Word, yo podría enviarle mis líneas de código en uno u otro, por si éstas le ayuden a hacer lo mismo en lenguaje de AHK.
Pero si esto le parece realizable, sugiero que lo continuemos a través de mensajes e-mail; usted me respondería (a estas líneas) con uno, y, si es en sentido positivo, yo le enviaría mi macro en otro).
Y si todo esto le parece inoportuno, le pido disculpas y ruego borre de su blog toda esta intervención.