Autor
|
Tema: [VB6] Comprobar si proceso existe y mostrar su ruta, AYUDA (Leído 9,640 veces)
|
revenge1252
Desconectado
Mensajes: 70
|
Hola a todos mi duda seria esta Me gustaria que mi proyecto comprobara si un proceso esta activo, por ejemplo, explorer.exe. y si esta activo me de su ruta en por ejemplo un text. llevo rato mirando pero no consigo encontrar la manera de hacerlo, aver si alguien puede ayudarme. Saludos!
|
|
|
En línea
|
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!!
En el foro hay mucho de eso, busca y vas a encontrar,,igual, ya te respondieron.
GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
seba123neo
|
WMI esta bien pero yo usaria api, siempre es lo mejor.
|
|
|
En línea
|
|
|
|
revenge1252
Desconectado
Mensajes: 70
|
El problema esque nose como hacer el codigo para comprobar si el proceso existe y que muestre su ruta :S ya tenia codigos para mostrar y cerrar procesos...
aun asi gracias igualmente x la ayuda!
aver si alguien puede decirme algo, saludos ^^
|
|
|
En línea
|
|
|
|
revenge1252
Desconectado
Mensajes: 70
|
Aqui tengo el code para ver si esta corriendo, alguien podria modificarlo para que coja ese mismo proceso y diga su ruta en el caso de que este corriendo? gracias por la ayuda! el code es este: Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function EnumProcesses Lib "PSAPI.DLL" (lpidProcess As Long, ByVal cb As Long, cbNeeded As Long) As Long Private Declare Function EnumProcessModules Lib "PSAPI.DLL" (ByVal hProcess As Long, lphModule As Long, ByVal cb As Long, lpcbNeeded As Long) As Long Private Declare Function GetModuleBaseName Lib "PSAPI.DLL" Alias "GetModuleBaseNameA" (ByVal hProcess As Long, ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Private Const PROCESS_VM_READ = &H10 Private Const PROCESS_QUERY_INFORMATION = &H400 Private Function EstaCorriendo(ByVal NombreDelProceso As String) As Boolean Const MAX_PATH As Long = 260 Dim lProcesses() As Long, lModules() As Long, N As Long, lRet As Long, hProcess As Long Dim sName As String NombreDelProceso = UCase$(NombreDelProceso) ReDim lProcesses(1023) As Long If EnumProcesses(lProcesses(0), 1024 * 4, lRet) Then For N = 0 To (lRet \ 4) - 1 hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, lProcesses(N)) If hProcess Then ReDim lModules(1023) If EnumProcessModules(hProcess, lModules(0), 1024 * 4, lRet) Then sName = String$(MAX_PATH, vbNullChar) GetModuleBaseName hProcess, lModules(0), sName, MAX_PATH sName = Left$(sName, InStr(sName, vbNullChar) - 1) If Len(sName) = Len(NombreDelProceso) Then If NombreDelProceso = UCase$(sName) Then EstaCorriendo = True: Exit Function End If End If End If CloseHandle hProcess Next N End If End Function Private Sub Command1_Click() If EstaCorriendo("calc.exe") = True Then MsgBox "Esta Corriendo" End If If EstaCorriendo("calc.exe") = False Then MsgBox "No esta Corriendo" End If End Sub
|
|
« Última modificación: 19 Mayo 2011, 16:22 pm por raul338 »
|
En línea
|
|
|
|
Hasseds
Desconectado
Mensajes: 145
|
. Function Ruta(lngPid As Long) As String Dim Handle_Proceso As Long Handle_Proceso = OpenProcess(&H410, &H0, lngPid) Dim Buffer As String * 260 Call GetModuleFileNameExA(Handle_Proceso, &H0, Buffer, 260) Call CloseHandle(Handle_Proceso) Ruta = Split(Buffer, Chr$(0))(0)
End Function
lngPid = lProcesses(N)
|
|
« Última modificación: 20 Mayo 2011, 11:03 am por Hasseds »
|
En línea
|
Sergio Desanti
|
|
|
revenge1252
Desconectado
Mensajes: 70
|
. Function Ruta(lngPid As Long) As String Dim Handle_Proceso As Long Handle_Proceso = OpenProcess(&H410, &H0, lngPid) Dim Buffer As String * 260 Call GetModuleFileNameExA(Handle_Proceso, &H0, Buffer, 260) Call CloseHandle(Handle_Proceso) Ruta = Split(Buffer, Chr$(0))(0)
End Function
lngPid = lProcesses(N) Muchas gracias por tu ayuda, ya lo adapte y funciona perfectamente Saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Comprobar si existe un archivo
Programación Visual Basic
|
{_The_Alwar_}
|
6
|
30,813
|
20 Junio 2005, 01:50 am
por Slasher-K
|
|
|
Sacar ruta de proceso.
Scripting
|
leogtz
|
5
|
4,330
|
11 Agosto 2008, 19:13 pm
por leogtz
|
|
|
mostrar ruta de proceso
Programación Visual Basic
|
Hans el Topo
|
4
|
2,553
|
18 Septiembre 2008, 12:47 pm
por Hans el Topo
|
|
|
Ver ID del proceso (conexion) y comprobar su estado
Bases de Datos
|
XafiloX
|
3
|
6,887
|
27 Febrero 2010, 16:47 pm
por XafiloX
|
|
|
[Ayuda] Cómo mostrar la ruta de una imagen en un TextBox
.NET (C#, VB.NET, ASP)
|
Strem404
|
2
|
3,917
|
29 Octubre 2012, 17:36 pm
por Strem404
|
|