Problemas con direcciones
Publicado: 03 Feb 2012, 00:27
Nota: El chome me jugó una mala pasada, pego el tema.
Pregunta, por lobopk2
Pregunta, por lobopk2
Respuesta, por arkcrewHola amigos soy nuevo en el foro, he conocido este programa que me parece que tiene muchas posibilidades y he de decir que no tengo idea de programacion ni conocimiento de ningun lenguaje, pero este programa me acercara mas.
Me ha salido un problema he visto algun video tutorial de como se hace un ejecutable desatendido con au3recorder y es bastante facil, he echo algunas pruevas y me ha salido, ahora bien en algunas cosas me ha fallado, hos comento.
la idea es habrir una carpeta que tiene dentro todos los archivos necesarios para una instalacion, pero claro una carpeta no es un ejecutable o un .exe asi que uso el winrar para hacerlo auto extraible, hasta ahi vien, hago un archivo nuevo con autoit y lo guardo donde he dejado el winrar, lo vuelvo ha habrir y empiezo a grabar con el au3recorder, señalando el archivo autoextraible.
Se me habre el extraible y me saca todos los archivos fuera asi que queria que me los sacara dentro de una carpeta todos, porque pensaba poner esa carpeta luego en el escritorio y no dejar los archivos por ahi sueltos, eso lo puede hacer no fue problema, asi que me saco la carpeta y con el teclado aprete f5 para actualizar la carpeta y me movi con el cursor para señalar dicha carpeta y entrar dentro de ella volvi a apretar f5 y me movi hasta señalar el exe para ejecutarlo, y todo lo demas normal.
guardo el proyecto lo pruebo en el autoit y todo va bien asi que compilo, pero ahora tengo que unir los dos archivos lo vuelvo ha hacer con el winrar en autoextraible, lo pruevo y funciona.
Pero aqui empieza mi dolor de cabeza cuando ese auto extraible lo saco fuera de la carpeta donde e echo todo y la lo dejo en otra ubicacion entonces ya no me funciona, no entiendo mucho porque pasa eso.
parece ser que donde lo he echo se tiene que quedar y si lo muevo de ahi ya no funciona, me es extraño porque al hacer el auto extraible esta todos los datos dentro, pero alguna explicacion tendra, porque claro si yo ese programa lo quiero instalar en otro ordenador ya no tendra esa misma ruta, entonces no me sirve hacer ese programa???
que tengo que hacer para sacarlo y que me funcione en cualquier ubicacion que lo deje?? y me funcionaria en otro ordenador diferente????
gracias por leer el tocho por lo menos, queria expresarme bien,espero haberlo echo.
Respuesta, por lobopk2Hola,
Creo que tu error es simple, tendrás algo como Run(app.exe) o un shellexecure(app.exe), donde la aplicación app.exe se encuentra en la misma ruta que tu ejecutable/script.
Al mover el script de sitio debes indicar la ruta compoelta de app.exe, vease por ejemplo C:\Documments And Settings\Usuario\Desktop\Carpeta de archivos extraidos\app.exe
EDIT: Olvide parte de la explicación, debes tener todo en la misma ruta, y para saber cual es la ruta en cada equipo, autoit te propone varias macros, usa @scriptdir, la cual te va a devolver la ruta donde está el ejecutable, ejemplo: C:\Usuario\Carpeta, o donde quiera que lo tengas.
Espero ayudarte con esta explicación!
Saludos!
PD: BIEN <> vien , ABRIR <> habrir y HECHO <> echo, esa ortografía hombre!
Respuesta por arkcrewhola arkcrew: Muchas gracias por contestar has sido muy amable, creo que te he entendido mas o menos.
Haber yo en el video que vi, cuando elegia el .exe le quitaba la ruta y dejaba en el run solo el nombre del .exe y tambien vi que todos los archivos estaban juntos, asi que creo entender que puedo poner una ruta en el escript para que luego me lo mande alli donde le indique,no?
lo de usa @scriptdir no tengo ni idea de que es ni donde esta, si esta claro que tengo que estudiar mas, quizas me precipite preguntando sin haber estudiado un poco mas, lo mirare igual que no se lo del comando ese del shellexecure.
lo que a mi me parece muy raro es que en el video el lo hace todo dentro de una carpeta y luego saca el compilado en el escritorio y le funciona, sera una tonteria o quizas porque yo lo enredo demasiado ya que hago un autoextraible que saca una carpeta nueva y el excript hace que habra el autoextraible que a la vez se mueve por dentro de esa carpeta, ya que el lo que hacia era directamente en un .exe. no se.
Otra cosa, lo de las faltas lo tengo asumido, podria arreglarlo muchas veces es por escribir deprisa pero la mayoria reconozco que el lenguaje no es mi fuerte, podria incluso arreglarlo ya que me sale en rojo las palabra que podrian ser faltas, pero mira yo soy asi, quizas esa sea mi firma y se que tu me entiendes igual ya que si me has rectificado es porque entendias lo que queria decir. esto solo es un matiz.
repito una vez mas gracias por tu ayuda desinteresada.
Respuesta, por lobopk2JAJAJA, tranqui, por lo de las faltas estaba de coña, simplemente me chocó un poco no te lo tomes a malas (;
En cuanto al código, si bien dices, lo lanzan sin el exe, en realidad es totalmente indiferente, si pudieras postearme el código te ayudaría mucho más, pero bueno te especifico algo más acerca de las funciones que comenté.
Mira, si generas un script con esta macro tal cual te indico, entenderás lo que hace la función @scriptdir
CÓDIGO: SELECCIONAR TODO
$ubicacion = @ScriptDir ; nos muestra la ubicación donde se ejecuta el exe
msgbox(0,"Aplicacion","Me encuentro en la ruta: " & $ubicacion)
Prueba a cambiarlo de ruta y entenderás el funcionamiento.
Un saludo, y hombre!, pregunta cuanto quieras, que para eso es el foro y claro, mi ayuda siempre es desinteresada, por eso me registré y por eso solicité ser moderador, para ayudar, así que no te cortes, pregunta cuanto quieras y recuerda indicar siempre todo con claridad y a poder ser, publica cuanto código tengas que eso nos facilita un montón a la hora de ayudarte y tu te ahorras de escribir tochos como esos.
Respuesta, por arkcrewhola gracias una vez mas:
si claro tienes razon seria mejor que vieras el script aunque es muy corto porque no lo termine por ver como salia la prueva y me salia mal por lo que te dije del cambio de hubicacion.
te pego el script:
#region --- Au3Recorder generated code Start ---
Run('Media.exe')
_WinWaitActivate("F:\Documents and Settings\Administrador\Escritorio\Nueva carpeta","FolderView")
Send("{F5}1{ENTER}")
_WinWaitActivate("F:\Documents and Settings\Administrador\Escritorio\Nueva carpeta\1","FolderView")
Send("{F5}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}")
_WinWaitActivate("Software Update Installation Wizard","Use this wizard to i")
Send("{RIGHT}{ENTER}")
#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---
#endregion --- Au3Recorder generated code End ---
#endregion --- Au3Recorder generated code End ---
esto ejecuta un archivo rar autoextraible que me saca los archivos dentro de una carpeta llamada 1. el compilador y este rar lo he echo tambien en un sfx para habrirlo, dentro de la carpeta que he echo todo el proceso me funciona bien, pero cuando saco el rar 3 fuera de esa carpeta ya no me funciona.
una anecdota mas, hace poco le tube que poner al script despues del rum un comando de sleep porque iba tan rapido que parecia que no le daba tiempo al rar a extraer y se ponia en marcha el script habriendo me otros archivos, ahora no se porque me ha ido bien, ira mas suelto el ordenador no lo se jajajajajja.
necesitaria un comando para hacer que se habriera el script cuando realmente terminara el rar de descomprimir, porque eso de ponerle tiempo es probar hasta que de con el clavo, vi un comando que era wait, puese winwait pero ahora que lo pienso quizas ese no es el que necesito, porque ademas ese no me funciono.
esque lo que quiero hacer es instalar un grupo de programas desatendidos, entonces necesito que se ejecute uno y cuando acabe ese que se ejecute el siguiente asi hasta terminar con todos, y ademas que pueda hacerlo en cualquier ordenador no solo en el mio.
Y me estraña mucho que si cojo un programa y lo ejecuto con el script lo compilo y pongo los dos archivos en un rar, si luego lo saco a otra hubicacion que me funciona, pero jugando de esta manera con los rar me falla un poco, sera por hacer tanto autoextraible???
no se que opinas??? que se te ocurre que hago mal o me falta???
PD: lo de la hubicacion del archivo esta muy bien, pero en las carpetas ya te sale la ruta de donde estas.
Respuesta por lobopk2Hola una vez mas.
Mira, te explico como debe quedar y esta tarde si no te aclaras te lo programo yo en un momento.
Lo rpimero, olvida usar el au3 recorder para la parte primera, es decir, si es un sfx de winrar puedes lanzarlo con el parámetro /S y asi será una extracción automatica desatendida de todo el contenido del rar en la misma ubicación.
hay cosas que no entiendo, si me facilitaras un listado de los archivos me facilitarías la tarea ya que no entiendo del todo bien, pero lo que si entendí es que tienes un rar con un contenido, el rar es un formato sfx autoextraible.
Bien, en una misma ruta tienes el archivo sfx que contiene el archivo de autoit compilado, todo esto se extrae en una misma carpeta no? pues si es asi olvida las rutas extensas que pones y tantos send down ya que no siempre van a cumplir el mismo orden que el que tu grabaste con el generador de macros.
Si lo que quieres es lanzaar archivos, como ya los tienes en la misma carpeta, olvida todo eso y simplemente llámalos con un run.
Aclaro, si extraes X contenido en X carpeta, y dentro de X carpeta están tanto los ejecutables que deseas instalar como el archivo compilado de autoit, te es indiferente la ruta completa, ya que al lanzar cada ejecutable con el run sin ninguna ruta, vease Run(app) el archivo app lo va a localizar por defecto en la misma ruta en la que se está ejecutando el archivo compilado en autoit.
Si no te aclaras, ya te digo, dame el listado completo de archivos, adjuntamelo o algo aqui en el foro y asi podré ver que es exactamente lo que te propones llevar a cabo ya que no entiendo del todo bien que quieres hacer..
Espero respuesta tuya.
Saludos!
Respuesta, por arkcrewGracias por el ofecimiento de programarlo, lo valoro mucho, pero seria mejor que lo hiciera yo si no no aprendere, aunque por una parte creo que lo dices para que vea la dinamica, que esta muy bien pensado.
-Intentare explicarme un poco mejor, tengo el windows media player para intalar, dentro de esa carpeta hay 4 ejecutales que he de instalar en un orden, en principio he selecionado todos los archivos que contiene esa carpeta y los he convertido en sfx y le he dicho al sfx que me los saque en una carpeta que la llame 1 (para que no me los sacara todos sueltos).
-Despues he echo un script el cual habre el sfx y me muevo con el teclado para habrir esa carpeta y dentro de ella me muevo para selecionar el primer ejecutable y lo instalo.
-Una vez probado y visto que funciona como lo hize, compilo el scritp.
-Luego cogo el escript ya compilado y el sfx y lo convierto en sfx, diciendole que habra el script compilado cuando termine de extraer.
De echo me funciona tal cual lo he grabado, pero como te digo solo si esta en esta carpeta que he estado trabajando todo esto, pero si yo saco este sfx en otro sitio ya no me funciona.
haber como tu dices podria llamar directamente a un ejecutable de los que hay en esa carpeta del windows media player, de echo lo he echo lo grabo y lo compilo, entonces lo curioso es que si saco el compilado a cualquier hubicacion si que me funciona, pero de esta manera que lo hago con los sfx no me sale si lo saco, que es lo que pasa? si el sfx es un exe tambien,no? eso es lo que no comprendo, pienso que lo deveria hacer igual que lo hace con el otro exe, pero se ve que no es asi.
pensareis bueno pues si te sale de la otra manera que es mas facil, pues hazlo asi, pero esque estoy pensando que haciendo un sfx podria habrir carpetas ya que el run solo busca .exe y tendria bastante juego igual eso de habrir carpetas y operar por ellas.
Pienso que asi podria instalar despues de ese exe el otro exe moviendome por las carpetas y despues el otro y asi hasta que terminara, seguro que hay algun comando para hacer algo asi nose.
pro cierto no me contestastes a lo mas importante te lo vuelvo a copiar:
"" esque lo que quiero hacer es instalar un grupo de programas desatendidos, entonces necesito que se ejecute uno y cuando acabe ese que se ejecute el siguiente asi hasta terminar con todos, y ademas que pueda hacerlo en cualquier ordenador no solo en el mio. ""
y cual es el comando para hacerlos secuenciales, que espere a que termine uno para comenzar con otro.
No te mando los archivos porque no se hacerlo por aqui jijijijij. Bueno ahi queda eso si has leido todo esto y aun estas despierto y has llegado hasta aqui, creo que te has ganado ya el cielo .
JAJAJAJAJJA, bueno te comento:
Se como funcionan todas esas cosas puesto que hace un tiempo estba obsesionado con los protables, los TEU (Todo en Uno, AIO, All In One) y los windows unattended, eran una meta para mi y por eso me entiendo con todo esto.
Para que no se me olvide, responderé a tu pregunta lo primero:
esque lo que quiero hacer es instalar un grupo de programas desatendidos, entonces necesito que se ejecute uno y cuando acabe ese que se ejecute el siguiente asi hasta terminar con todos, y ademas que pueda hacerlo en cualquier ordenador no solo en el mio.
Veamos, para hacer eso primero tienes que tener las estructuras claras.
Lo que yo haría sería simple, intentaré expresarme con la mayor claridad que me sea posible.
Supongamos que queremos instalar 3 aplicaciones ¿vale?, luego podrás ser cuantas quieras, pero es para que entiendas como lo haría.
Estructura:
*Ejecutable principal: Compilado que sea el encargado de lanzar cada una de las aplicaciones desatendidas
* Archivos SFX (Con los archivos necesarios)
Funcionamiento:
El ejecutable principal estará programado para ir uno a uno instalando los archivos, supongamos lo ya dicho, 3 arhcivos, tendremos pues 3 sfx, cada uno con un contenido, al comienzo, el EJ (ejecutable principal, abreviaré asi todo el tiempo) lanzará el primer sfx y lo instalará, para ello estará configurado ya con los nombres de archivo y demás cosas, cuando finalice lanzará el 2º y asi sucesivamente.
Ahora bien, olvida ese rollo de moverte por las carpetas, puesto que la verdad es que al usuario normal no le va a molar nada ver como su ordenador funciona solo, simplemente automatiza las instalaciones.
haz que tus archivos SFX se extraigan y se ejecuten en los temporales para despues ser eliminados, te recomiendo encarecidamente que mires el funcionamiento del WPI, windows post installation, que es el wizzard que usan los Unattended para instalar las apps, el funcionamiento de esta aplicacion es simple, el usuario configura la lista de aplicaciones y las rutas y los parámetros de ejecución y el usuario normal accede a una bonita interfaz (quienes hayan instalado un UE de los primeros que salieron sabrán que digo) y con eso lo tienes todo.
Lo suyo sería que cada archivo sfx contenga un ejecutable compilado en autoit para que al extraerse todo en temporales este ejecutable instale y elimine todos los archivos tras la instalación.
Te pongo un ejemplo:
Suponte que digo yo, que quieres instalar el VLC, genial aplicación por cierto, bueno pues en un sfx metes el instalador del vlc y el ejecutable de autoit. Haces que ese ejecutable se extraiga de forma silenciosa en temporales y que arranque el archivo de autoit, el cual se encargará de instalar la aplicación. Luego borras esos temporales y listo.
Espero haberme explicado con claridad, al menos, el esfuerzo está puesto.
Esto es un poco lioso la verdad, al menos como lo he explicado, es imprescindible que entiendas el funcionamiento de autoit, por ello te dejo un ejemplo de lo que te he explicado:
Un sfx que contenga lo siguiente:
Path = %tempdir%
Setup = Ejecutable.exe
Contenidos del sfx:
Ejecutable.exe
Setup_vlc.exe
Ahora, el sfx al ejecutarse se descomprimiría en temporales (creo que escribí correctamente, hace siglos que no hago un sfx) y al extraerse ejecutaría el ejecutable.exe el cual tendría una estructura como:
Run(Setup_vlc.exe) y demás parámetros para instalar desatendido, eso te lo apañas tu que no recuerdo si el VLC era con un /S o algo así..
Entonces se instalaría la aplicación de forma desatendida, pues asi lo haces con todos los programas, aunque no necesariamente necesitan un ejecutable con autoit, es cuestión que investigues, pero ya te digo, piensa bien la estructura, ordénalo todo, pero no por carpetas, sino instala uno, borras, o borras al final, pero no te líes a descomprimir en millones de carpetas y moverte por ellas, simplemente, si quieres descomprimir todo a la vez, que el programa sepa donde debe buscar, algo en plan Run(Carpeta\app.exe) eso ya decide tu, pero también te recomiendo que te mires las macros en la ayuda, pulsando F1 y leas un poco de como funciona autoit, sino, mira también por el foro que hay mucha información, pero intenta programar cuanto menos con el au3recorder mejor, porque cuando te mueves por carpetas.. la cosa se lia, es mejor usarlo solo para generar lo que sería las pulsaciones del botón una vez abierto el instalador, ni antes ni después, solo para el instalador, para abrir la aplicación ya te digo, organización y macros, con eso lo tienes todo resuelto.
Rezo por que entiendas mi explicación.
Saludos!
EDITO
Con las prisas olvidé responder a esto:
-Intentare explicarme un poco mejor, tengo el windows media player para intalar, dentro de esa carpeta hay 4 ejecutales que he de instalar en un orden, en principio he selecionado todos los archivos que contiene esa carpeta y los he convertido en sfx y le he dicho al sfx que me los saque en una carpeta que la llame 1 (para que no me los sacara todos sueltos).
-Despues he echo un script el cual habre el sfx y me muevo con el teclado para habrir esa carpeta y dentro de ella me muevo para selecionar el primer ejecutable y lo instalo.
-Una vez probado y visto que funciona como lo hize, compilo el scritp.
-Luego cogo el escript ya compilado y el sfx y lo convierto en sfx, diciendole que habra el script compilado cuando termine de extraer.
Veamos, tienes el media payer, 4 ejecutables, que sean 5 en la misma carpeta, el 5º sería el programado con autoit.
Tan sencillo como los metes todos en un sfx, que los extraiga en temporales y que el autoit se ejecute e instale todos los archivos por orden, al extraerse todo en el mismos sitio estarán todos los ejecutables en la misma ruta asi que simplemente genera un código para desatender la instalación de cada uno de los 4 archivos y todo ello que quede programado en el archivo que winrar ejecuta tras la extracción, con ello este al lanzarse, instalará el primer archivo, el segundo, el tercero y el cuarto, no veo más complicación.
Si no sabes, súbeme los archivos a mediafire o yo que se, desde que han tirado megauplod esto es una mierda, ya te lo programo yo y te lo paso para que así aprendas, si quieres, te puedo hacer alguno simple yo y ves la estructura de como se haría y tu lo intentas, pero ya te digo, si no manejas el lenguaje.. apañado vas, es mejor que revises pro donde puedas información de autoit, de hecho en el foro hay muchos tutos sobre eso creo, al menos hay un apartado que toca esos temas, infórmate cuanto puedas.
Saludos!
Edit 2
Cambié el tema de sitio puesto que no estaba donde le correspondía, espero que no te importe, pero para un funcionamiento ideal lo suyo es mantener el foro ordenado.
Saludos!