Abrir todos los archivos .lnk en un directorio
Abrir todos los archivos .lnk en un directorio
Hola, estoy buscando el codigo para que un script de autoit abra todos los archivos .lnk de un directorio. He probado con:
ShellExecute("*.lnk")
Pero no funciona. Hay alguna forma de que autoit detecte todos los .lnk del directorio donde esta (o que yo le especifique los directorios) y abra todos esos archivos que son enlaces .lnk a programas .exe?
Salu2 y Gracias
ShellExecute("*.lnk")
Pero no funciona. Hay alguna forma de que autoit detecte todos los .lnk del directorio donde esta (o que yo le especifique los directorios) y abra todos esos archivos que son enlaces .lnk a programas .exe?
Salu2 y Gracias
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
Hola tienes que sustituir *.lnk por el nombre del fichero.
Aquí hay un ejemplo de la ayuda de FileFindNextFile() que recupera los archivos de un directorio:
Cuando tengas el código si lo puedes publicar a ver como lo acabaste. Puedes crearte una funcion: EjecutaDir("nombrededirectorio")
Salu22:)
Aquí hay un ejemplo de la ayuda de FileFindNextFile() que recupera los archivos de un directorio:
Código: Seleccionar todo
; Shows the filenames of all files in the current directory.
$search = FileFindFirstFile("*.*")
; Check if the search was successful
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
MsgBox(4096, "File:", $file) =>> aqui pondrías shellexecute() o run()
WEnd
; Close the search handle
FileClose($search)
Salu22:)
Re: Abrir todos los archivos .lnk en un directorio
Hola, al final con la ayuda de la web de autoit inglesa he conseguido el código:
Espero que le pueda servir a alguien.
Salu2
Código: Seleccionar todo
#include <File.au3>
#include <Array.au3>
$Folder = @ScriptDir & "\"
$FileList = _FileListToArray($Folder, "*.lnk") ;
If @error Then Exit
_ArrayDisplay($FileList)
For $A = 1 To $FileList[0]
ShellExecute($Folder & $FileList[$A])
Next
Salu2
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Abrir todos los archivos .lnk en un directorio
Me alegro de que lo hayas solucionado. Seguro que a alguien le servirá en algún momento.
Te recomiendo que analices el código y aprendas de él. Así llegará un momento que casi no necesitarás buscar nada porque ya lo sabrás hacer tú a tu modo .
Saludos.
Te recomiendo que analices el código y aprendas de él. Así llegará un momento que casi no necesitarás buscar nada porque ya lo sabrás hacer tú a tu modo .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Abrir todos los archivos .lnk en un directorio
Si que me he quedado mas o menos como es y ojala que llegue ese dia .
Asi es como lo he dejado para utilizarlo:
De esta manera abre todos los accesos directos que hay en el escritorio del usuario actual y del escritorio compartido (los que se ven en pantalla)
Salu2
Asi es como lo he dejado para utilizarlo:
Código: Seleccionar todo
; Opciones AutoIt
Opt("WinTitleMatchMode",4)
Opt("TrayIconHide", 0)
#include <File.au3>
#include <Array.au3>
$Folder = @DesktopCommonDir & "\"
$FileList = _FileListToArray($Folder, "*.lnk")
If @error Then Exit
For $A = 1 To $FileList[0]
ShellExecute($Folder & $FileList[$A])
Next
$Folder2 = @DesktopDir & "\"
$FileList2 = _FileListToArray($Folder2, "*.lnk")
If @error Then Exit
For $A2 = 1 To $FileList2[0]
ShellExecute($Folder2 & $FileList2[$A2])
Next
Salu2
- Alastor
- Aprendiz de Mago
- Mensajes: 59
- Registrado: 13 Dic 2009, 14:27
- Ubicación: Zaragoza, España
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
Me alegro de que ya lo hayas solucionado. Creo que te quedara mucho mejor si lo pones en una funcion en lugar de suelto, asi solo tienes que editar el directorio si quieres añadir alguno mas.
Saludos.
Código: Seleccionar todo
#include <File.au3>
#include <Array.au3>
; Opciones AutoIt
Opt("WinTitleMatchMode", 4)
Opt("TrayIconHide", 0)
ExecuteFolderLinks(@DesktopCommonDir & "\")
ExecuteFolderLinks(@DesktopDir & "\")
Func ExecuteFolderLinks($_Folder)
$FileList = _FileListToArray($_Folder, "*.lnk")
If @error Then
MsgBox(0, "Error", "Se ha producido un error en la funcion _FileListToArray." & @CRLF & "Linea " & @ScriptLineNumber)
Return -1
EndIf
For $A = 1 To $FileList[0]
ShellExecute($_Folder & $FileList[$A])
Next
EndFunc ;==>ExecuteFolderLinks
Aprendiendo AutoIt y C++
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
Hola,
Gracias por el código alternativo.
En este caso es indiferente usar _FileListToArray() o FileFindNextFile(), la diferencia es que en la primera trabajas sobre una variable que almacenó el directorio en un momento anterior que puede no ser el real, si hubiera un movido, borrado o copia de archivos entre tanto, y la otra es que trabajas en tiempo real sobre los ficheros reales que existen en las carpetas.
En este caso como no habría cambios entre el momento de la "foto" de la lista de ficheros, y los ficheros reales con los que trabajes en ese momento ya que parece que la carpeta de links es muy estatica, y el lapso de tiempo en que se ejecute el programa no es largo para que se creen modificaciones.
Salu22:)
Gracias por el código alternativo.
En este caso es indiferente usar _FileListToArray() o FileFindNextFile(), la diferencia es que en la primera trabajas sobre una variable que almacenó el directorio en un momento anterior que puede no ser el real, si hubiera un movido, borrado o copia de archivos entre tanto, y la otra es que trabajas en tiempo real sobre los ficheros reales que existen en las carpetas.
En este caso como no habría cambios entre el momento de la "foto" de la lista de ficheros, y los ficheros reales con los que trabajes en ese momento ya que parece que la carpeta de links es muy estatica, y el lapso de tiempo en que se ejecute el programa no es largo para que se creen modificaciones.
Salu22:)
Re: Abrir todos los archivos .lnk en un directorio
Gracias Alastor
Madre mia que cracks estais hechos
Con lo que yo tardo en programar 2 lineas que medio funcionan y lo rapido que vosotros haceis las cosas, ¿que es de tanto programar en autoit o que os sabeis el manual de la "a" a la "z"? o ambas cosas?
A ver cuando me inicio a crear un GUI, que tengo ganas de hacerlo con autoit.
Salu2
Madre mia que cracks estais hechos
Con lo que yo tardo en programar 2 lineas que medio funcionan y lo rapido que vosotros haceis las cosas, ¿que es de tanto programar en autoit o que os sabeis el manual de la "a" a la "z"? o ambas cosas?
A ver cuando me inicio a crear un GUI, que tengo ganas de hacerlo con autoit.
Salu2
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
Autoit funciona con la lógica, no hace falta aprender nada, es decir, que las funciones están en la ayuda y que entre los ejemplitos y la simplicidad del nombre de funciones y programar, es solo coger la mecánica de usar la ayuda o el Intellisense del editor Scite.Esteban escribió: Con lo que yo tardo en programar 2 lineas que medio funcionan y lo rapido que vosotros haceis las cosas, ¿que es de tanto programar en autoit o que os sabeis el manual de la "a" a la "z"? o ambas cosas?
A ver cuando me inicio a crear un GUI, que tengo ganas de hacerlo con autoit.
Salu2
El gui te lo crea automáticamente el KODA con el editor visual,
Una vez con la práctica te acuerdas de las funciones pero con saber usar los IF THEN y los bucles tienes el 90% hecho.. lo otro es buscar en la ayuda o el foro
Salu22:)
- Esgrimidor
- Hacker del Foro
- Mensajes: 286
- Registrado: 19 Oct 2008, 00:59
- Ubicación: Santa Cruz de Tenerife
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
Yo lo que tengo es un script que me ejecuta un grupo de programas. Lo que llamo montar un escenario o un perfil de arranque del ordenador.
Por ejemplo : perfil trabajo .
me abre excel, word, el navegador, el cliente de correo y alguna cosilla más.
perfil multimedia
me abre audacity, el editor de video, me lanza la carpeta de imágenes y alguna cosilla más.
Por ejemplo : perfil trabajo .
me abre excel, word, el navegador, el cliente de correo y alguna cosilla más.
perfil multimedia
me abre audacity, el editor de video, me lanza la carpeta de imágenes y alguna cosilla más.
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
A ese mismo Script que tienes aplicarle la función FileCopyEspecialPARAarchivosLNK() y quitar la linea que tiene para ejecutar en el mismo sitio es donde que hay q poner la func.Esgrimidor escribió:Yo lo que tengo es un script que me ejecuta un grupo de programas. Lo que llamo montar un escenario o un perfil de arranque del ordenador.
Por ejemplo : perfil trabajo .
me abre excel, word, el navegador, el cliente de correo y alguna cosilla más.
perfil multimedia
me abre audacity, el editor de video, me lanza la carpeta de imágenes y alguna cosilla más.
Salu22:)
- Esgrimidor
- Hacker del Foro
- Mensajes: 286
- Registrado: 19 Oct 2008, 00:59
- Ubicación: Santa Cruz de Tenerife
- Contactar:
Re: Abrir todos los archivos .lnk en un directorio
El escript no es mío y me parece que no está en autoit. O sea que no es editable. Es un programa cerrado donde le pones las líneas de las rutas de los links o ejecutables, y te los va ejecutando por orden sin más. Te monta un escenario en un periquete.