Página 1 de 1

COMO ADJUNTAR ARCHIVOS

Publicado: 28 Sep 2011, 07:41
por yasmany
Hola a todos...
Me pudieran ayudar para adjuntar archivos para cuando hago una compilacion
tengo entendido q para adjuntar un icono (solo se para unito..no se como hacer para mas)

Código: Seleccionar todo

#AutoIt3Wrapper_icon=folder.ico
quiero adjuntar archivos wav y otros iconos
ESTOS ME SIRVEN para poder ver los iconos en los botones y reproducir la musica
POR ESO es q quisiera saber como lo hago
POR FA ayudadme CON EL CODIGO para varios archivos wav o imagenes e iconos
:smt039 ZALU2

Re: COMO ADJUNTAR ARCHIVOS

Publicado: 28 Sep 2011, 09:25
por Ximorro
Lo que quieres se hace con FileInstall().
Funciona de la siguiente manera:
.- En compilación inserta en el EXE el archivo que le dices en el primer parámetro (¡este parámetro no puede ser variable!)
.- En ejecución extrae el archivo donde le dices en el segundo parámetro, entonces usas ese archivo.

Es decir, no lo saca a memoria, tienes que guardarlo en disco (por ejemplo en el temporal) usarlo de ahí, y cuando acabes con él es tu responsabilidad borrarlo.

Por ejemplo puedes tocar un mp3 de dentro del exe si haces:

Código: Seleccionar todo

$pathmp3 = @TempDir & "\musica.mp3"
FileInstall("C:\misprogramas\tocamp3\musica.mp3", $pathmp3)
SoundPlay($pathmp3, 1)
SoundPlay("") ; Cerramos handler
FileDelete($pathmp3) ;¡lo borramos del temporal!
Cosas a tener en cuenta:
El primer parámetro de FileInstall no puede ser variable, aunque puedes usar path relativo, por ejemplo si tienes el mp3 en la misma carpeta que el au3 puedes usar ".\musica.mp3".
En el segundo parámetro (que sí puede ser variable) puedes omitir el nombre (poner sólo la carpeta), de esa manera mantiene el nombre original. Yo en este caso lo uso entero porque uso la misma variable para SoundPlay y FileDelete, que requieren el nombre entero. Así que podría haber hecho también:
FileInstall(".\musica.mp3", @TempDir & "\") ;Si pones sólo la carpeta destino, tiene que acabar con la barra

Si no haces el FileDelete el archivo se quedará en el temporal.

Aunque no uses el exe, por ejemplo si ejecutas el au3 directamente, que obviamente no tiene el mp3 dentro, igual se hace la copia del archivo. Así el código es igual si estás en desarrollo o ya es el EXE distribuido. O sea, aunque uses el au3 también tienes que borrar el archivo del temporal porque también lo copia allí.