Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cerrar Servicio cuando se reinicie la pc

Estas en el tema de Cerrar Servicio cuando se reinicie la pc en el foro de Visual Basic clásico en Foros del Web. Buenad foreros mi consulta es la siguiente he realizado un servicio en visual basic pero cuando por ejemplo lo incializo con el comando Shell "command.com ...
  #1 (permalink)  
Antiguo 27/04/2007, 11:18
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 1
Cerrar Servicio cuando se reinicie la pc

Buenad foreros mi consulta es la siguiente he realizado un servicio en visual basic pero cuando por ejemplo lo incializo con el comando

Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbHide


hasta ahi muy bien pero cuando por ejemplo despues de hacer esa accion apago mi pc me sale un mensaje de que hay un programa ejecutando y si deseo "Finalizar tarea" o "Cancelar" , es como si la pantallla de DOS estuviera abeirta pero oculta y nose haya cerrado hay algun comando que despues de ejecutar el shell me cierre esa pantalla oculta(supongo esto poruqe siempre me sale ese mensaje al apagar mi pc como si una apicacion estuviera abierta pero no se).

espero sus comentarios muchas gracias.
  #2 (permalink)  
Antiguo 27/04/2007, 13:05
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

En Google vi este code, adaptalo a tus necesidades o crea un .bat

Código:
Private Sub Command1_Click()
KillProcess "ntvdm.exe"
End Sub

Public Sub KillProcess(ByVal processName As String)
On Error GoTo ErrHandler
Dim oWMI
Dim ret
Dim sService
Dim oWMIServices
Dim oWMIService
Dim oServices
Dim oService
Dim servicename

Set oWMI = GetObject("winmgmts:")
Set oServices = oWMI.InstancesOf("win32_process")

For Each oService In oServices
  servicename = LCase(Trim(CStr(oService.Name) & ""))
  If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
    ret = oService.Terminate
  End If
Next

Set oServices = Nothing
Set oWMI = Nothing

Exit Sub
ErrHandler:
  Err.Clear
End Sub

Private Sub Command2_Click()
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbMaximizedFocus
End Sub
  #3 (permalink)  
Antiguo 27/04/2007, 13:34
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

ok muchas gracias ya funciono, lo he probado en xp crees que funcione normal en el 2000 y/o 2003 si puedes pasame el link donde lo bajaste para leerlo con mas detalles
  #4 (permalink)  
Antiguo 27/04/2007, 14:00
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

No puedo postear URL's asi que te lo mando por MP.
  #5 (permalink)  
Antiguo 27/04/2007, 14:16
 
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

bueno amigo haber si me puedes ayudar lo que pasa es que solo necesito un boton que por ejemplo inicialize el servicio y despues de eso cierre la ventana de DOS, he heco esto:

Private Sub Command3_Click()
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbMaximizedFocus
KillProcess "ntvdm.exe"
End Sub

pero cierra muy rapido la ventana antes de que inicialize el servicio como podria darle un tiempo para que inicalize el servicio y cierre despues la ventana nose sera 5 a 10 seg gracias.
  #6 (permalink)  
Antiguo 27/04/2007, 15:29
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

Me parece que te estas liando, mira:

Código:
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbMaximizedFocus 
Código:
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbHide 
  #7 (permalink)  
Antiguo 27/04/2007, 15:37
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Cerrar Servicio cuando se reinicie la pc

Me parece que te estas liando, mira:

Con vbMaximizedFocus, la ventana msdos la ves maximizada
Código:
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbMaximizedFocus 
Y con vbhide, está oculta
Código:
Shell "command.com /k net start ""BMatic - Servicio de Ticketera""", vbHide 
Si tu cuando arranca la aplicación despues de abrir el servivio te lo cargas con
Código:
KillProcess "ntvdm.exe"
Para que lo abres?, espero que lo comprendas. Qu una aplicación no este visible no quiere decir que no se este ejecutando.

Si no te quieres complicar la vida puedes hacerlo de esta manera.

1º- Crea una aplicación que se ejecute al inicio de win
2º- Al iniciae esa aplicación que ejecute la Shell
3º- En el evento Unload de la aplicación pones Killprocess "xxxxxx"

Y con esto deberia ir (a groso modo)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.