
09/11/2008, 03:36
|
Colaborador | | Fecha de Ingreso: enero-2008 Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses Puntos: 37 | |
Respuesta: ¿Boton q se desbloque al...? Cita:
Iniciado por Sairox Buenas noches, nesesito con urgencia un codigo para una aplicacion que estoy realizando, mi problema es que yo estoy realizando un programa para ejecutar una aplicacion que anteriormente habia realizado, practicamente el programa que en este momento estoy realizando es un launcher par aun videojuego, entonces mi problema es que nesesito que mi programa al iniciar compruebe si el hamachi se esta ejecutando entre los procesos del sistema, si este no se ejecuta entonces que el boton del launcher se auto-deshabilite, de lo contrario entonces que el boton se habilite inmediatamente, si alguien me pude ayudar con esto le agradeceria mucho su ayuda... gracias
practicament elo que deseo es que el codigo compruebe los procesos en ejecucion y si entre estos procesos se encuentra hamachi , habilite el boton de lo contrario que se quede deshabilitado... muchas gracias y hasta luego. Buenos dias, podrías crear una función como ésta que devuelve un valor booleano indicando si se está ejecutando el proceso o no.
Código:
Option Explicit
' declaraciones API
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
' tipo definido por el usuario
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type
Private Function VerificarProceso(ByVal ElProceso As String) As Boolean
Dim hSn As Long, res As Long
Dim tProcess As PROCESSENTRY32
hSn = CreateToolhelpSnapshot(2&, 0&)
If hSn <> 0 Then
tProcess.dwSize = Len(tProcess)
res = ProcessFirst(hSn, tProcess)
Do While res
If Left(tProcess.szExeFile, InStr(tProcess.szExeFile, Chr$(0)) - 1) = ElProceso Then
VerificarProceso = True
Exit Do
End If
res = ProcessNext(hSn, tProcess)
Loop
Call CloseHandle(hSn)
End If
End Function
y para llamarla p.e. al abrir el formulario:
Código:
Private Sub Form_Load()
If VerificarProceso("hamachi.exe") = True Then btnLauncher.Enabled = True
End Sub
PD. Suponemos que propiedad Enabled de 'btnLauncher' en diseño está en False.
Buen dia |