Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Junio 29, 2012, 04:32:19 pm
-
Hola, estoy dotando a una aplicacion de una forma de actualización y cuando el usuario selecciona la opcion del mneu Buscar Actualización se habre un exe externo que se encarga de esta accion!, ahora bien si existe actualización quisiera cerrar la aplicación principal desde el actualizador .. como hago esto?
Gracias
-
Mata el proceso che...! Y ya...!
-
Mata el proceso che...! Y ya...!
Pues nunca me tope con eso ! he visto si que hay una forma de comunicacion entre ejecutables pero no se que es lo mas eficiente para este caso?
-
Revisa esto hermano mio...
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/14.htm
-
buenisimo!!! ssccaann!! eso es lo que necesitaba
-
Private Sub Command1_Click()
KillProcess ("Nombre_Del_Programa_que_se_quiere_cerrar.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
-
yo no lo mataria asi a secas, sino que me comunicaria con el programa de forma normal, a traves de un comando, por ahi tambien hay una forma de comunicarse entre aplicaciones.
-
mira esto es una forma de hacerlo en VB script, lo puedes hacer en VB 6 que fucniona, de hecho el ejemplo esta en así, o lo montas en un bloc de notas y le cambias la extensión a vbs, y funciona igual.
En este ejemplo lo que hago es evitar que inicien este proceso llamado smrss.EXE, es util para que no te puedan abrir algo que no quieres, lo unico que tienes que saber el nombre del proceso que por esta misma via se sabe, solo modifica el codigo.
Private Sub form_load()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService. _
ExecNotificationQuery("select * from __instancecreationevent " _
& " within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
Set objLatestProcess = colMonitoredProcesses.NextEvent
If objLatestProcess.TargetInstance.Name = "smrss.EXE" Then
objLatestProcess.TargetInstance.Terminate
End If
Loop
End Sub
-
HOLA!!!
Para mi pone un boton invisible en el programa que vas a cerrar y dentro de el el codigo para que se cierre correctamente, luego lo clickeas del otro programa con sendmessage
GRACIAS POR LEER!!!
-
HOLA!!!
Para mi pone un boton invisible en el programa que vas a cerrar y dentro de el el codigo para que se cierre correctamente, luego lo clickeas del otro programa con sendmessage
GRACIAS POR LEER!!!
Que buena idea!!!