Autor Tema: Pasar lineas de DOS bat a autoit  (Leído 2873 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado AngelDeGiorgi

  • PIC10
  • *
  • Mensajes: 1
Pasar lineas de DOS bat a autoit
« en: 26 de Julio de 2012, 13:41:06 »
Leí las reglas del foro, y espero no violarlas al pedir esta ayuda.
He intentado estudiar AutoIt, pero a mis 72 años me resultó tarea imposible. Por eso debo pedir a alguien que lo maneje si me puede dar una mano, en vez de  mandarme a estudiar.

Armé el siguiente script .au3 para correr aplicaciones desde un pendrive sin dejar rastros en la pc, tomando ideas y un ejemplo de un link. (pero sin entenderlo a fondo).  El  Init.exe inicial  y el Exit.exe final fueron idea mía usando DOS.

RunWait("Init.exe")  (ver detalle mas abajo)
Carga  C:\...\AppData\Roaming\  desde un backup
RunWait("regedit.exe /s HCU.reg", @ScriptDir)
RunWait("regedit.exe /s HLM.reg", @ScriptDir)

Carga el Registro de Windows desde un backup
RunWait("App\fotoshow.exe")
Lanza la aplicación. Durante la ejecución se modifican los valores en AppData y el Registro.
RunWait('regedit.exe /s /e "' & @ScriptDir & '\HCU.reg" "HKEY_CURRENT_USER\Software\fotoshow"')
RunWait('regedit.exe /s /e "' & @ScriptDir & '\HLM.reg" "HKEY_LOCAL_MACHINE\Software\fotoshow"')

Respaldo de los nuevos valores de las claves en el Registro.
RunWait("regedit.exe /s H00.reg", @ScriptDir)
Borra las claves de  "fotoshow" en el registro para no dejar trazas.
RunWait("Exit.exe") (ver detalle mas abajo)
Actualiza en U:\Ruta\fotoshow el respaldo de AppData\Roaming\fotoshow  y borra este último no dejando trazas de fotoshow en Roaming.

Luego convertí el .au3 en .exe usando Aut2exe.exe
Esto funciona con muchas aplicaciones, pero no TODAS.
No anda cuando el nombre de la carpeta creada por la aplicación en AppData\Roming (o Local) incluye un espacio por ejemplo "Foto  Show" en lugar de FotoShow ó Foto_Show.
La razón es que el D.O.S. Batch no reconoce el espacio, y acusa error por exceso de parámetros.

Init.exe es el compilado (Bat_To_Exe_Converter) del DOS Batch:
rd /s /q  C:\...\AppData\Roaming\fotoshow
xcopy  U:\PATH\fotoshow   C:\...\AppData\Roaming\fotoshow\  /S /E

Borra eventuales rastros antiguos de fotoshow en AppData\Roaming, luego lo actualiza desde el backup en U:\PATH\fotoshow. (Las líneas se repiten para Local si la aplicación lo requiere)

Exit.exe es el compilado (Bat_To_Exe_Converter) del DOS Batch:
rd /s /q  U:\Path\fotoshow
xcopy  C:\...\AppData\Roaming\fotoshow   U:\PATH\fotoshow\  /S /E
rd /s /q  C:\...\AppData\Roaming\fotoshow

Borra el antiguo respaldo en U:\PATH\fotoshow, crea uno actualizado , y elimina C:\...\AppData\Roaming\fotoshow, no dejando trazas. (Idem para Local)

Mi pedido porque yo no lo se hacer, es la traducción de las cinco líneas azules de  *.bat a las que hagan la misma función pero en *.au3

Si alguien tiene la vocación de ayudarme, se lo voy a agradecer.
Angel.
degiorgi@fibertel.com.ar