Problema con imagenes

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

Moderator: Flipeador

nipton
Posts: 21
Joined: 01 Jul 2017, 20:00

Problema con imagenes

02 Aug 2017, 12:32

Hola, estoy creando un script gui, y cuando añado una imagen al script y lo guardo y abro el script obviamente yo veo la imagen pero cuando le paso el script a mi amigo mediante una descarga el no ve las imagenes, se que es porque esas imagenes no estan en su pc, ¿que podria hacer para que la viera?
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Problema con imagenes

02 Aug 2017, 22:00

Hola,
Pon un ejemplo del script que tienes. Mira el comando FileInstall, te sirve para añadir archivos al ejecutable cuando compilas el Script y luego extrae ese archivo en el directorio especificado.
nipton
Posts: 21
Joined: 01 Jul 2017, 20:00

Re: Problema con imagenes

17 Aug 2017, 13:00

Hola, sigo teniendo el mismo problema lo intente arregla con el comando FileInstal pero sigo teniendo ese problema, el problema es este, un script test con una imagen puesta que hace de fondo azul https://gyazo.com/e4365718cc889b4e006694c00312bb80, pero si otro pc abre el script no le sale la imagen y le sale este texto C:\Users\Esta\Imagen\Test\azul.png, porfavor no se como arreglarlo ayuda.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Problema con imagenes

17 Aug 2017, 13:31

Seguramente estas utilizando mal el comando FileInstall.
Pon el script que estás utilizando para poder ver el error.
Suponiendo que tienes una imágen en D:\imagen.jpg, debes utilizar el comando de la siguiente manera:

Code: Select all

FileInstall, D:\imagen.jpg, D:\imagen.jpg
Luego compilar el Script y envía el archivo .exe a tu amigo.
Ten en cuenta que dependiendo donde se extraiga el archivo tu amigo debe ejecutar el Script compilado como Administrador.
Además, el directorio especificado en el segundo parámetro debe existir.
nipton
Posts: 21
Joined: 01 Jul 2017, 20:00

Re: Problema con imagenes

17 Aug 2017, 16:04

Hola, lo intente con el codigo que me pasastes pero no me deja compilarlo este es el simple script que uso para testear lo de la imagen.

Code: Select all

Gui Show, w1079 h650, Test
FileInstall, D:\azul123.jpg, D:\azul23.jpg
Gui Add, Picture, x125 y-15 w300 h300, C:\Users/usuario/desktop/azul123.jpg
Return
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Problema con imagenes

17 Aug 2017, 16:38

¿Has leído la documentación de este comando?
Lo estás utilizando mal.
El primer parámetro recibe la ruta a tu imagen, y el segundo parámetro la ruta donde será extraida la imágen.
Si utilizas FileInstall, D:\azul123.jpg, D:\azul23.jpg, entonces debes utilizar Gui Add, Picture, x125 y-15 w300 h300, D:\azul23.jpg.
no me deja compilarlo
¿Por que no te deja compilarlo?, ¿que error te muestra?
Asegurate de que la imágen especificada en el primer parámetro (D:\azul123.jpg) exista.

El comando FileInstall es una directiva del compilador.
Cuando compilas tu Script, el compilador al terminar copia el archivo especificado en el primer parámetro y lo agrega al ejecutable en RC_DATA (utilizando la API UpdateResource).
Luego, al ejecutar el Script compilado, AutoHotkey copia el archivo incluido en el ejecutable a la ruta especificada en el segundo parámetro.
nipton
Posts: 21
Joined: 01 Jul 2017, 20:00

Re: Problema con imagenes

18 Aug 2017, 13:19

El error que me da es este.
Error adding FileInstall file:
D:\azul23.jpg
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Problema con imagenes

18 Aug 2017, 14:51

Vuelve a leer mi último comentario, allí esta la respuesta.
y si sigues con el problema, asegurate de que el archivo exista.

Edito*
Mira, este es un ejemplo sin usar FileInstall.
Instrucciones:
  • I) Crea un Script con el siguiente código:

Code: Select all

hResInfo := DllCall("Kernel32.dll\FindResourceExW", "Ptr", 0, "Int", 10, "Str", "IMG", "UShort", 0, "Ptr")
hResData := DllCall("Kernel32.dll\LoadResource", "Ptr", 0, "Ptr", hResInfo, "Ptr")
Size     := DllCall("Kernel32.dll\SizeofResource", "Ptr", 0, "Ptr", hResInfo, "UInt")
hResLock := DllCall("Kernel32.dll\LockResource", "Ptr", hResData, "Ptr")

If (!hResLock)
    ExitApp
FileOpen(FileName := A_Temp . "\~tmpimg.jpg", "w").RawWrite(hResLock+0, Size)


; //////////////////////////////////
Gui Show, w500 h400, Test
Gui Add, Picture, x0 y0 w500 h400, % FileName
Return
  • II) Compila el Script.
  • III) Ahora ejecuta este Script y selecciona lo que te pide:

Code: Select all

MsgBox A continuación selecciona tu Script compilado
FileSelectFile, ExeFile
If (ErrorLevel)
    ExitApp

MsgBox A continuación selecciona tu imágen
FileSelectFile, PicFile
If (ErrorLevel)
    ExitApp

If (!(f := FileOpen(PicFile, "r")))
    ExitApp
f.RawRead(Data, Size := f.Length)
f.Close()

hUpdate := DllCall("Kernel32.dll\BeginUpdateResourceW", "Ptr", &ExeFile, "Int", FALSE, "Ptr")
R       := DllCall("Kernel32.dll\UpdateResourceW", "Ptr", hUpdate, "Int", 10, "Str", "IMG", "UShort", 0, "Ptr", &Data, "UInt", Size)
DllCall("Kernel32.dll\EndUpdateResourceW", "Ptr", hUpdate, "Int", !R)

If (R)
    MsgBox OK!
ExitApp
  • Te debe aparecer el mensaje 'OK!'
  • Listo!, ahora ejecuta el Script que compilaste (el archivo .exe).

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 57 guests