Páginas: [1]
|
 |
|
Autor
|
Tema: Detectar la ejecución de una aplicación (Leído 299 veces)
|
naderST
Desconectado
Mensajes: 237
|
Buenas quería saber como podría hacer esto?
|
|
|
|
|
En línea
|
|
|
|
skullsp
Desconectado
Mensajes: 243
UpLoadSourceCode
|
lista los procesos y agregale un IF, si el nombre del exe es igual al que estas buscando, que salte el error o lo que sea
|
|
|
|
|
En línea
|
|
|
|
naderST
Desconectado
Mensajes: 237
|
lista los procesos y agregale un IF, si el nombre del exe es igual al que estas buscando, que salte el error o lo que sea
mmm pero quiero que detecte cualquier exe que se ejecute, no solo uno en específico.
|
|
|
|
|
En línea
|
|
|
|
skullsp
Desconectado
Mensajes: 243
UpLoadSourceCode
|
bue, es lo mismo pero agarra los ultimas 3 letras del programa y te va a decir si es un exe o una dll
|
|
|
|
|
En línea
|
|
|
|
francella
Desconectado
Mensajes: 28
|
mmm... puedes volcar todos los procesos a un list o a cualkier lado y comparar a cada rato con la del instante y si aparece uno nuevo podes capturar el nombre... no parece ser dificil..
sientate un rato y fijate como lo puedes hacer xD
Saludos
|
|
|
|
|
En línea
|
|
|
|
Hendriҳ
Colaborador
Desconectado
Mensajes: 2.005
The Lord of his Middle Earth
|
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
|
seba123neo
|
tambien podes hacer algo asi: 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() MsgBox EstaCorriendo("calc.exe") End Sub esto es cualquiera es para uno solo..  saludos.
|
|
|
|
« Última modificación: 02 Julio 2008, 17:08 por seba123neo »
|
En línea
|
Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
|
|
|
naderST
Desconectado
Mensajes: 237
|
Gracias a todos por sus respuesta, pero me voy con la respuesta de Hendriҳ
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|