Código VB que protege el proceso
k pública como booleana
sub privada form_load()
timer1.enabled=k
fin de sub
Private Sub Timer1_Timer()
Si SeeProcess(App.EXEName) <> 2 Entonces
'Se ha cerrado otro proceso
Finalizar si p>
End Sub
Moudle1:
Opción explícita
'Declarar API
Const pública TH32CS_SNAPPROCESS = &H2&< / p>
Tipo público PROCESSENTRY32
dwSize durante el tiempo
cntUsage durante el tiempo
th32ProcessID durante el tiempo
th32DefaultHeapID durante el tiempo
p>
th32ModuleID mientras
cntThreads mientras
th32ParentProcessID mientras
pcPriClassBaseAs Long
dwFlags como Largo
szExeFile como cadena * 260
Tipo de fin
Declaración pública Sub CloseHandle Lib " kernel32" (ByVal hPass As Long)
Función de declaración pública CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags mientras, ByVal th32ProcessID mientras) mientras
Función de declaración pública Process32First Lib "kernel32" (ByVal hSnapShot mientras, lppe como PROCESSENTRY32) mientras< / p>
Proceso de función de declaración pública32Next Lib "kernel32" (ByVal hSnapShot siempre, lppe como PROCESSENTRY32) Mientras
Proceso de función de declaración pública32Next Lib "kernel32" (ByVal hSnapShot mientras, lppe como PROCESSENTRY32) Mientras
Función de declaración pública OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
Sub Main()
atenuar t como formulario1
Si Trim(Command) = "/js" Entonces
establecer t = Nuevo Formulario1
t.k=true p >
Otro
<p>Shell App.Path & "\amp" & App.amp ".exe /js"
End If
End Sub
'Ver el especificación Nombre del proceso
Función SeeProcess(sProcess As String) Como Entero
Dim lSnapShot AsLong As Long
Dim lNextProcess As Long
Dim sum como entero
Dim tPE como PROCESSENTRY32
suma = 0
lSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
Si lSnapShot < > -1 Entonces
tPE.dwSize = Len(tPE)
lNextProcess = Process32First(lSnapShot, tPE)
Hacer mientras lNextProcess
Si sProcess & ".exe" = Left(tPE.szExeFile, InStr(1, tPE.szExeFile, Chr(0 ))- 1) entonces
suma = suma + 1
End If
lNextProcess = Process32Next(lSnapShot, tPE)
Bucle
CloseHandle (lSnapShot)
Bucle
CloseHandle (lSnapShot)
Finalizar si
SeeProcess = suma
Finalizar función