Uso de variables de memoria de fecha en ruta de carpeta o archivo

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Uso de variables de memoria de fecha en ruta de carpeta o archivo

28 Aug 2017, 14:07

Uso de variables de memoria de fecha en ruta de carpeta o archivo


Estoy tratando de lanzar

Run, "O:\PANTALLAZOS\%yyyy%\%MM%.%yyyy%"
but receive an error

Mi objetivo es lanzar la carpeta del mes actual leyendo partes de la variable de la fecha.

O sea
O:\PANTALLAZOS\2017\08.2017

Gracias
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

28 Aug 2017, 16:13

Gracias !

Entonces :

"O:\pantallazos\%A_YYYY%\%A_MM%.%A_YYYY%"

Voy a intentarlo
Saludos
Editado : no me sale. Algo estaré haciendo mal.

Qué puedo hacer

Editado : perdón por poner en inglés...
Last edited by AutoPepe on 29 Aug 2017, 15:59, edited 1 time in total.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

28 Aug 2017, 16:34

¿Por que has creado este tema en el foro en español?
Si quieres puedo moverlo al foro en ingles, pero debes editar el mensaje principal.

Con respecto al tema principal, deberías explicarte mejor porque no entiendo.
Utiliza FileExist para comprobar que la ruta sea correcta.
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

29 Aug 2017, 16:02

Lo que estoy intentando sin éxito es esto :

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#numpad5::
; Run, "O:\PANTALLAZOS"
; Run, "O:\PANTALLAZOS\2017"
; Run, "O:\PANTALLAZOS\%yyyy%\%%MM%%.%%yyyy%%\"
Run, "O:\pantallazos\%A_YYYY%\%A_MM%.%A_YYYY%\"
La ruta del mes O:\PANTALLAZOS\2017\08.2017 Existe
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

29 Aug 2017, 21:00

Tú código a mi me funciona correctamente... ¿que error te muestra? :think:
He creado una carpeta en el escritorio 2017\08.2017 y utilizando Run, "%A_Desktop%\%A_YYYY%\%A_MM%.%A_YYYY%\" abre la carpeta sin problemas.
¿Que te muestra MsgBox % FileExist("O:\pantallazos\" . A_YYYY . "\" . A_MM . "." . A_YYYY)?
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 02:32

Tienes razón perdona . Es que el problema de todo esto es con Phrase Express que lo utilizo también para hacer scripts y me falla. Lo he cerrado y ahora el script ahk funciona de maravilla.
Muchas gracias.
Una consulta más ya que me gustaría tratar de cargar el script con phrase express como tengo por costumbre

1. Una vez tenga abierta la carpeta destino cómo puedo añadir la orden para que vaya al final de la carpeta ?
2. LO que trataré luego es ver si puedo ejecutar este script desde phrase express para no tener que abrir otro programa residente.

Gracias
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 04:56

1) 2 opciones. Puedes abrir la carpeta, esperar unos segundos y enviar SendInput {END} o utilizar esta función para seleccionar un archivo automáticamente.
2) Tal vez deberías considerar utilizar únicamente AutoHotkey, mira este enlace.
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 16:25

Voy a mirarlo en detalle. Tengo la consulta en Phrase Express, pero no me responden.
LLevo con el programita desde 2007 y estoy bastante hecho a él. Deja ver si puedo recuperarlo. Caso contrario sólo AHK .
Con lo que sea te digo si me salió bien.
Muchas gracias
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 16:42

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#numpad5::
; Run, "O:\PANTALLAZOS"
; Run, "O:\PANTALLAZOS\2017"
; Run, "O:\PANTALLAZOS\%yyyy%\%%MM%%.%%yyyy%%\"
Run, "O:\pantallazos\%A_YYYY%\%A_MM%.%A_YYYY%\"
Sleep, 1000  ; 1 second
SendInput {END}
Quedaría el programa así ?
Tengo que intentarlo.
Mis problemas con Phrase Express son menores. Tengo como 675 scripts en ese entorno. NO creo que me sea fácil cambiar.
Lo que quiero intentar es cómo interacciona con AHK, ya que consigo mismo no lo hace bien.

En tal caso la combinación de teclas a probar correría a cargo de Phrase Express, y los comandos a cargo de AHK
si funciona estupendo, si no tendré que probar otra cosa...
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 16:44

No me funciona. Estoy haciendo algo mal seguro. Me abre la carpeta de pantallazos del mes, pero no se va al final de la misma...
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

30 Aug 2017, 20:07

AutoHotkey y Phrase Express se interfieren entre sí, utiliza uno u otro.
¿Por que quieres que AutoHotkey vaya al final automáticamente?
Simplemente presiona la tecla END cuando explorer haya terminado de cargar los archivos.
Prueba:

Code: Select all

Loop, Files, O:\pantallazos\%A_YYYY%\%A_MM%.%A_YYYY%\*.*, FD
    LF := A_LoopFileName

OpenFolderAndSelectItems("O:\pantallazos\" . A_YYYY . "\" . A_MM . "." . A_YYYY, LF)

OpenFolderAndSelectItems(DirName, Files, Flags := 0)
{
    Local Items, Each, FileName, ITEMLIST, PIDL, R
    
    DirName := StrLen(DirName) < 4 ? SubStr(DirName, 1, 1) . ":" : RTrim(DirName, "\")
    Items   := []

    For Each, FileName In (IsObject(Files) ? Files : [Files])
        If (FileExist(DirName . "\" . FileName))
            Items.Push(FileName)

    If (!Items.MaxIndex())
        Return (-2)

    VarSetCapacity(ITEMLIST, Items.MaxIndex() * A_PtrSize)

    For Each, FileName In Items
    {
        DllCall("Shell32.dll\SHParseDisplayName", "Str", DirName . "\" . FileName, "Ptr", 0, "PtrP", PIDL, "UInt", 0, "Ptr", 0)
        NumPut(PIDL, ITEMLIST, (A_Index - 1) * A_PtrSize, "Ptr")
    }
    
    DllCall("Ole32.dll\CoInitializeEx", "Ptr", 0, "UInt", 0)
    DllCall("Shell32.dll\SHParseDisplayName", "Ptr", &DirName, "Ptr", 0, "PtrP", PIDL, "UInt", 0, "Ptr", 0)
    R := DllCall("Shell32.dll\SHOpenFolderAndSelectItems", "Ptr", PIDL, "UInt", Items.MaxIndex(), "Ptr", &ITEMLIST, "UInt", Flags)
    
    DllCall("Ole32.dll\CoTaskMemFree", "Ptr", PIDL)
    Loop (Items.MaxIndex())
        DllCall("Ole32.dll\CoTaskMemFree", "Ptr", NumGet(ITEMLIST, (A_Index - 1) * A_PtrSize, "Ptr"))
    DllCall("Ole32.dll\CoUninitialize")

    Return (R ? -1 : 0)
} ;https://msdn.microsoft.com/en-us/library/windows/desktop/bb762232(v=vs.85).aspx
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

31 Aug 2017, 06:01

Lo intentaré. Una pregunta.
Creo que el fallo inicial de que no se sitúe al final de la carpeta abierta (el propósito es que contiene pantallazos y normalmente los que me hacen falta son los últimos tomados, de ahí que quiera navegar en la carpeta a los últimos tomados) es que tengo activo un programa alternativo al Explorer.
Cómo hago para que la carpeta quien la abra sea windows explorer.

Lanzando el programa explorer.exe con su ruta correspondiente ?

Gracias
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

31 Aug 2017, 07:07

Prueba el script que te puse arriba, yo tengo instalado Clover y me funciona correctamente.
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

31 Aug 2017, 16:35

Probado. Funciona perfectamente !!!!!

Ahora estoy tratando de hacerlo funcionar a través de PE. O sea asignando la combinación de tecla rápida a PE y el resto del trabajo lo hace AHK.
Recibo el error
Moz2 - 31_08_2017 , 22_30_34.png
Es cierto que tengo desactivado el UAC y las aplicaciones a las que se refiere para poder usar un CRM antiguo que tengo
Moz2 - 31_08_2017 , 22_30_34.png (17.35 KiB) Viewed 2572 times
Voy a compilar el ahk y volver a probar con el exe
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

31 Aug 2017, 16:46

Ahora debo estar haciendo algo mal.
Creo que seguramente tengo un compilador antiguo
Me da un par de errores al compilar y luego al ejecutarlo también.
No tiene mucho sentido, así que revisaré donde meto la pata.
Moz2 - 31_08_2017 , 22_41_44.png
Moz2 - 31_08_2017 , 22_41_44.png (6.86 KiB) Viewed 3213 times
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

31 Aug 2017, 16:56

Ya te he dicho que utilices solo uno. Con AutoHotkey puedes hacer todo lo que haces con PE.
Con respecto al segundo error, ¿que versión de AHK estás utilizando?, descarga la última versión.
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

01 Sep 2017, 16:15

He deshabilitado el script de phrase express limitándolo al entorno Virtualbox.
Ahora me centraré en el script de AHK y empezaré a usarlo en formato ahk hasta que resuelva como compilarlo correctamente.
Estaba mirando como cargo ahk en memoria . Seguramente a través de la carpeta startup , porque no veo el ejecutable en mi Startup Delayer ni en el msconfig.
Te diré la versión que tenía aunque ya me estoy bajando la última.
Gracias
AutoPepe
Posts: 70
Joined: 08 May 2016, 15:34

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

01 Sep 2017, 16:22

Estoy desorientado porque he examinado la carpeta inicio de el usuario principal y de all users y no veo cargado a autohotkey. No lo entiendo...
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Uso de variables de memoria de fecha en ruta de carpeta o archivo

01 Sep 2017, 16:31

Code: Select all

If (!A_IsAdmin)
{
    Run, *RunAs "%A_AhkPath%" "%A_ScriptFullPath%"
    ExitApp
}

RegWrite, REG_SZ, HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, AHK, "%A_AhkPath%" "%A_ScriptFullPath%"
MsgBox % ErrorLevel ? "Error!" : "Ok!"

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 7 guests