[VBS] Problema al ejecutar un .EXE y crear su acceso directo

Iniciado por efer27, 5 Mayo 2012, 15:56 PM

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

efer27

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 (VB) [Seleccionar]


********************************************************************
Option Explicit ' Declaracion de las variables

Dim Wshshell, Command
Dim objShell, objDesktop, objLink 'Variables
Dim strAppPath, strWorkDir, strIconPath 'Variables

' ----------------------------------------------------------'
' Ejecuta el .EXE

Set Wshshell = Wscript.createObject("WScript.Shell")
Command = "mozilla.exe" ' Mozilla.exe es un ejemplo como puede ser cualquier .EXE
WshShell.Run Command ' Ejecuta el comando


' Creación de Acceso Directo Aplicación

' --------------------------------------------------


strWorkDir ="z:\mozilla.exe" ' Directorio donde esta la aplicacion
strAppPath = "d:\mozilla.exe" 'Ruta de la aplicación

Set objShell = CreateObject("WScript.Shell")
objDesktop = objShell.SpecialFolders("D:\Users\Public\Desktop") ' Acceso directo en el escritorio
Set objLink = objShell.CreateShortcut(objDesktop & "\COP - Comptabilitat Organisme Pagador.lnk") ' Nombre del acceso directo

' ---------------------------------------------------
'Propiedades acceso ridercto

objLink.Description = "mozilla"   ' Comentario
'objLink.HotKey = "CTRL+SHIFT+X" ' Teclado de método abreviado
objLink.TargetPath = strAppPath 'Ruta de la aplicación  (Destino)
objLink.WindowStyle = 3
objLink.WorkingDirectory = strWorkDir ' Directorio donde esta la aplicacion (Iniciar en)
objLink.Save ' Guardar

WScript.Quit ' Salir


********************************************************************

Saludos y espero alguna orientacion

Eleкtro

@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.








Eleкtro

#2
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 (vb) [Seleccionar]
strComputer = "."
Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

''# Create an event query to be notified within 5 seconds when Firefox is closed
Set colEvents = oWMI.ExecNotificationQuery _
   ("SELECT * FROM __InstanceDeletionEvent WITHIN 5 " _
    & "WHERE TargetInstance ISA 'Win32_Process' " _
    & "AND TargetInstance.Name = 'firefox.exe'")

''# Wait until Firefox is closed
Set oEvent = colEvents.NextEvent

Saludos








efer27

#3
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 (VB) [Seleccionar]

'********************************************************************
Option Explicit ' Declaracion de las variables

Dim Wshshell, Command
Dim objShell, objDesktop, objLink 'Variables
Dim strAppPath, strWorkDir, strIconPath 'Variables
Dim srtComputer

' ----------------------------------------------------------'
' Ejecuta el .EXE

Set Wshshell = Wscript.createObject("WScript.Shell")
Command = "pspad454inst_en.exe" ' Mozilla.exe es un ejemplo como puede ser cualquier .EXE
WshShell.Run Command ' Ejecuta el comando

strComputer = "."
Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

''# Create an event query to be notified within 5 seconds when Firefox is closed
Set colEvents = oWMI.ExecNotificationQuery _
   ("SELECT * FROM __InstanceDeletionEvent WITHIN 5 " _
    & "WHERE TargetInstance ISA 'Win32_Process' " _
    & "AND TargetInstance.Name = 'pspad454inst_en.exe'")

''# Wait until Firefox is closed
Set oEvent = colEvents.NextEvent


' Creación de Acceso Directo Aplicación

' --------------------------------------------------


strWorkDir ="z:\mozilla.exe" ' Directorio donde esta la aplicacion
strAppPath = "d:\mozilla.exe" 'Ruta de la aplicación

Set objShell = CreateObject("WScript.Shell")
objDesktop = objShell.SpecialFolders("D:\Users\Public\Desktop") ' Acceso directo en el escritorio
Set objLink = objShell.CreateShortcut(objDesktop & "\COP - Comptabilitat Organisme Pagador.lnk") ' Nombre del acceso directo

' ---------------------------------------------------
'Propiedades acceso ridercto

objLink.Description = "mozilla"   ' Comentario
'objLink.HotKey = "CTRL+SHIFT+X" ' Teclado de método abreviado
objLink.TargetPath = strAppPath 'Ruta de la aplicación  (Destino)
objLink.WindowStyle = 3
objLink.WorkingDirectory = strWorkDir ' Directorio donde esta la aplicacion (Iniciar en)
objLink.Save ' Guardar

WScript.Quit ' Salir

'********************************************************************


saludos

Eleкtro

Cita de: efer27 en  5 Mayo 2012, 17:42 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 (vb) [Seleccionar]
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")

Saludos








HdM

Buenas.

El problema está en que declara la variable como:

Dim srtComputer

y luego es utilizada como

strComputer = "."

Es decir, dos variables diferentes.

Saludos.

- Nice to see you again -

efer27

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

JohnConnor