Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: efer27 en 5 Mayo 2012, 15:56 pm



Título: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: efer27 en 5 Mayo 2012, 15:56 pm
Hola a todos,

tengo un problema que aun no me puedo aclarar debe ser algo simple pero no da mi cabeza para mas, estoy bloqueado. El problema que tengo es el siguiente.
tengo un Script que realiza lo siguiente.

instala un programa el ejecutable es un .exe
una vez termine de ejecutar como no te hace una acceso directo, lo genero yo. pero el problema es que realiza la primera instruccion y a la misma vez la instruccion del acceso directo. pero como aun no termina la ejecucion del .exe no puede generar el acceso directo. solo me hace la primera parte.
este es el script. alguien me puede dar alguna orientacion

Código
  1.  
  2. ********************************************************************
  3. Option Explicit ' Declaracion de las variables
  4.  
  5. Dim Wshshell, Command
  6. Dim objShell, objDesktop, objLink 'Variables
  7. Dim strAppPath, strWorkDir, strIconPath 'Variables
  8.  
  9. ' ----------------------------------------------------------'
  10. ' Ejecuta el .EXE
  11.  
  12. Set Wshshell = Wscript.createObject("WScript.Shell")
  13. Command = "mozilla.exe" ' Mozilla.exe es un ejemplo como puede ser cualquier .EXE
  14. WshShell.Run Command ' Ejecuta el comando
  15.  
  16.  
  17. ' Creación de Acceso Directo Aplicación
  18.  
  19. ' --------------------------------------------------
  20.  
  21.  
  22. strWorkDir ="z:\mozilla.exe" ' Directorio donde esta la aplicacion
  23. strAppPath = "d:\mozilla.exe" 'Ruta de la aplicación
  24.  
  25. Set objShell = CreateObject("WScript.Shell")
  26. objDesktop = objShell.SpecialFolders("D:\Users\Public\Desktop") ' Acceso directo en el escritorio
  27. Set objLink = objShell.CreateShortcut(objDesktop & "\COP - Comptabilitat Organisme Pagador.lnk") ' Nombre del acceso directo
  28.  
  29. ' ---------------------------------------------------
  30. 'Propiedades acceso ridercto
  31.  
  32. objLink.Description = "mozilla"   ' Comentario
  33. 'objLink.HotKey = "CTRL+SHIFT+X" ' Teclado de método abreviado
  34. objLink.TargetPath = strAppPath 'Ruta de la aplicación  (Destino)
  35. objLink.WindowStyle = 3
  36. objLink.WorkingDirectory = strWorkDir ' Directorio donde esta la aplicacion (Iniciar en)
  37. objLink.Save ' Guardar
  38.  
  39. WScript.Quit ' Salir
  40.  
  41.  
  42. ********************************************************************
  43.  
Saludos y espero alguna orientacion


Título: Re: Duda de Ejecución
Publicado por: Eleкtro en 5 Mayo 2012, 16:06 pm
@efer27:
No eres un usuario nuevo, Y absolutamente todos los posts que has creado hasta ahora incumplen esta norma:

Citar
Reglas del subforo:

    Codigo debe de ir en su tag correspondiente [ code ][ / code ]

PD: ¿Te las has leido?.

Ya va siendo hora de que postees bien, Edita Arregla el mensaje o tendré que eliminarlo.

Un saludo.


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: Eleкtro en 5 Mayo 2012, 16:27 pm
Esto te puede servir, Añades la funcion de crear el acceso directo una vez haya terminado la espera del evento

Cita de: http://stackoverflow.com/questions/3641163/wait-for-program-to-complete
Código
  1. strComputer = "."
  2. Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  3.  
  4. ''# Create an event query to be notified within 5 seconds when Firefox is closed
  5. Set colEvents = oWMI.ExecNotificationQuery _
  6.    ("SELECT * FROM __InstanceDeletionEvent WITHIN 5 " _
  7.     & "WHERE TargetInstance ISA 'Win32_Process' " _
  8.     & "AND TargetInstance.Name = 'firefox.exe'")
  9.  
  10. ''# Wait until Firefox is closed
  11. Set oEvent = colEvents.NextEvent

Saludos


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: efer27 en 5 Mayo 2012, 17:42 pm
Hola. disculpa pero me sale el siguiente error, no se si esta bien lo que puse ya que en vbscript no tengo tantas nociones. el error es el siguiente.

.vbs(16, 1) Error de Microsoft VBScript en tiempo de ejecución: Variable no definida: 'strComputer' y el codigo es el siguiente.

Código
  1. '********************************************************************
  2. Option Explicit ' Declaracion de las variables
  3.  
  4. Dim Wshshell, Command
  5. Dim objShell, objDesktop, objLink 'Variables
  6. Dim strAppPath, strWorkDir, strIconPath 'Variables
  7. Dim srtComputer
  8.  
  9. ' ----------------------------------------------------------'
  10. ' Ejecuta el .EXE
  11.  
  12. Set Wshshell = Wscript.createObject("WScript.Shell")
  13. Command = "pspad454inst_en.exe" ' Mozilla.exe es un ejemplo como puede ser cualquier .EXE
  14. WshShell.Run Command ' Ejecuta el comando
  15.  
  16. strComputer = "."
  17. Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  18.  
  19. ''# Create an event query to be notified within 5 seconds when Firefox is closed
  20. Set colEvents = oWMI.ExecNotificationQuery _
  21.    ("SELECT * FROM __InstanceDeletionEvent WITHIN 5 " _
  22.     & "WHERE TargetInstance ISA 'Win32_Process' " _
  23.     & "AND TargetInstance.Name = 'pspad454inst_en.exe'")
  24.  
  25. ''# Wait until Firefox is closed
  26. Set oEvent = colEvents.NextEvent
  27.  
  28.  
  29. ' Creación de Acceso Directo Aplicación
  30.  
  31. ' --------------------------------------------------
  32.  
  33.  
  34. strWorkDir ="z:\mozilla.exe" ' Directorio donde esta la aplicacion
  35. strAppPath = "d:\mozilla.exe" 'Ruta de la aplicación
  36.  
  37. Set objShell = CreateObject("WScript.Shell")
  38. objDesktop = objShell.SpecialFolders("D:\Users\Public\Desktop") ' Acceso directo en el escritorio
  39. Set objLink = objShell.CreateShortcut(objDesktop & "\COP - Comptabilitat Organisme Pagador.lnk") ' Nombre del acceso directo
  40.  
  41. ' ---------------------------------------------------
  42. 'Propiedades acceso ridercto
  43.  
  44. objLink.Description = "mozilla"   ' Comentario
  45. 'objLink.HotKey = "CTRL+SHIFT+X" ' Teclado de método abreviado
  46. objLink.TargetPath = strAppPath 'Ruta de la aplicación  (Destino)
  47. objLink.WindowStyle = 3
  48. objLink.WorkingDirectory = strWorkDir ' Directorio donde esta la aplicacion (Iniciar en)
  49. objLink.Save ' Guardar
  50.  
  51. WScript.Quit ' Salir
  52.  
  53. '********************************************************************
  54.  

saludos


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: Eleкtro en 5 Mayo 2012, 17:51 pm

.vbs(16, 1) Error de Microsoft VBScript en tiempo de ejecución: Variable no definida: 'strComputer' y el codigo es el siguiente.

Borra esa variable y aparte prueba así:

Código
  1. Set oWMI = GetObject("winmgmts:\\.\root\cimv2")

Saludos


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: HdM en 5 Mayo 2012, 18:13 pm
Buenas.

El problema está en que declara la variable como:

Dim srtComputer

 y luego es utilizada como

 strComputer = "."

Es decir, dos variables diferentes.

Saludos.


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: efer27 en 5 Mayo 2012, 18:25 pm
Graciassssssssss !!!!!!!!!!!!!!!
ya solucione el problema.

una consulta referente a programacion.
 
yo estoy comenzando con esto de VBSCRIPT y POwerShell pero no me aclaro mucho eh revisado los manuales publicados por este foro y estan muy bien pero aun no logro comprender muchas cosas.

tu me puedes orientar como puedo averiguar mas o si hay algun libro en español donde pueda aprovechar a sacarle todo el provecho.

saludos


Título: Re: [VBS] Problema al ejecutar un .EXE y crear su acceso directo
Publicado por: JohnConnor en 7 Mayo 2012, 06:18 am
No uses option explicit