Título: [HELP] Type Declares
Publicado por: Swellow en 24 Junio 2012, 18:34 pm
Hey guys, I'm trying to remove type declares on that code but I didn't success. Here is the code: Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, th32ProcessID As Long) As Long
Public Type PROCESSENTRY32 dwSize As Long cntUseage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long swFlags As Long szExeFile As String * 1024 End Type
Public Function Running(ByVal sFileName As String) As Boolean Dim hSnapshot As Long Dim pe32 As PROCESSENTRY32 hSnapshot = CreateToolhelp32Snapshot(2, 0) pe32.dwSize = Len(pe32) Process32First hSnapshot, pe32 Do While Process32Next(hSnapshot, pe32) <> 0 If InStr(1, LCase(pe32.szExeFile), LCase(sFileName)) > 0 Then Running = True End If Loop CloseHandle (hSnapshot) End Function Would be really appreciated if anyone could remove the type declare and let me know how you did it. Thanks!
Título: Re: [HELP] Type Declares
Publicado por: Swellow en 24 Junio 2012, 21:24 pm
I've tried: Public Function IsProcessRunning(ByVal sFileName As String) As Boolean Dim hSnapshot As Long Dim bPE32(1024 + 36 - 1) As Byte Dim bExe(1023) As Byte hSnapshot = CreateToolhelp32Snapshot(2, 0) sMoveMem VarPtr(bPE32(0)), VarPtr(CLng(UBound(bPE32))), 4 Process32First hSnapshot, VarPtr(bPE32(0)) Do While Process32Next(hSnapshot, VarPtr(bPE32(0))) <> 0 sMoveMem VarPtr(bExe(0)), VarPtr(bPE32(36)), 1024 If InStr(1, LCase(StrConv(bExe, vbUnicode)), LCase(sFileName)) > 0 Then IsProcessRunning = True End If Loop CloseHandle (hSnapshot) End Function But this is buggy, it doesnt work correctly...
|