Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

MKN Reservas (Maro - Kayak Nerja)


Kayak Maro - Rutas y alquiler de kayak y tabla
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu inter�s (algunos de los avisos publicados)

01/feb./2019

Los moderadores, MVP y administradores podrán seguir editando, respondiendo o creando nuevos mensajes

Con idea de que puedan ayudar a responder e ir cerrando mensajes ;-)

  Foro: .NET VB Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 40938 - Cerrar una aplicacion desde codigo
IDAsuntoFechaNick 
40938 Cerrar una aplicacion desde codigo29/04/08 15:48karensol   
Hola

logre abrir una aplicacion y tambien tengo el codigo para abrir un archivo con cualquier extencion.

mi problema ahora es que necesito saber como puedo cerrar esa aplicacion, he encontrado bastante codigo en internet pero ninguno me resulta , estoy tratando con este
Public Declare Function OpenProcess _
Lib "kernel32.dll" (ByVal dwDesiredAccessas As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcId As Long) As Long

Public Declare Function GetWindowThreadProcessId _
Lib "user32" (ByVal HWnd As Long, _
ByVal lpdwProcessId As Long) As Long

'Constante para coger permiso completo:

Private Const PROCESS_ALL_ACCESS = &H1F0FFF


'Private Declare Function OpenProcess Lib "kernel32" (ByVal _
'dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
'ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal lpExitCode As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _
As Long) As Long

' Private Declare Function GetWindowThreadProcessId Lib "user32" () _
' (ByVal hwnd As Long, ByVal lpdwProcessId As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long

Const PROCESS_TERMINATE = &H1
Const PROCESS_QUERY_INFORMATION = &H400
Const STILL_ACTIVE = &H103

Public Sub CerrarProceso(ByVal TítuloVentana As String)
Dim hProceso As Long
Dim lEstado As Long
Dim idProc As Long
Dim winHwnd As Long

winHwnd = FindWindow(vbNullString, TítuloVentana)
If winHwnd = 0 Then
Debug.Print("El proceso no está abierto") : Exit Sub
End If
Call GetWindowThreadProcessId(winHwnd, idProc) ========== ERRRORRR

' Obtenemos el handle al proceso
hProceso = OpenProcess(PROCESS_TERMINATE Or _
PROCESS_QUERY_INFORMATION, 0, idProc)
If hProceso <> 0 Then
' Comprobamos estado del proceso
GetExitCodeProcess(hProceso, lEstado)
If lEstado = STILL_ACTIVE Then
' Cerramos el proceso
If TerminateProcess(hProceso, 9) <> 0 Then
Debug.Print("Proceso cerrado")
Else
Debug.Print("No se pudo matar el proceso")
End If
End If
' Cerramos el handle asociado al proceso
CloseHandle(hProceso)
Else
Debug.Print("No se pudo tener acceso al proceso")
End If
End Sub

Tira el siguiente error :

"Intento de leer o escribir en la memoria protegida. A menudo, esto indica que hay
otra memoria dañada."

y.... he probado tanto y no he podido si alguien pudiese ayudarme estare eternamente agradecida
IDAsuntoFechaNick 
40944 Re: Cerrar una aplicacion desde codigo (Resp: 40938)29/04/08 17:38Ciper   
bueno veo ke te refieres a los procesos asi ke para abrir .. es facil ... y matar(finalizar) mas aun!:
para abrir:

Dim proceso As New Process
proceso.StartInfo.FileName = ruta del programa o proceso
proceso.Start()

para finalizarlo:

Dim procesos() As Process = Process.GetProcessesByName(prog) 'donde prog es el nombre del proceso
procesos(0).CloseMainWindow() 'intenta cerrar ese proceso
If procesos(0).HasExited = False Then 'si no se cerro antes... matar el proceso
procesos(0).Kill()
procesos(0).Close()
End If

salu2!





Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
40945 Re: Cerrar una aplicacion desde codigo (Resp: 40944)29/04/08 18:01karensol   
MUCHAS GRACIAS CIPER

ME ayudaste bastante. despues de tanto investigar y probar , tu me diste la solucion
muy agradecida


[Editado: karensol, 29/04/2008 18:02:54]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2026  - foros.elGuille v1.0.6.3 (01/Jun/2021 12:45 GMT +2)  - (ASP.NET v4.0.30319.42000)
 
La hora GMT del servidor es: 09/06/2026 13:59:51 GMT