VB 如何时时监控一个制定程序的模块~
答案:2 悬赏:20
解决时间 2021-03-12 01:37
- 提问者网友:嗝是迷路的屁
- 2021-03-11 09:33
VB 如何时时监控一个制定程序的模块~
最佳答案
- 二级知识专家网友:鸠书
- 2021-03-11 10:05
OpenProcess打开进程
CreateToolhelp32Snapshot创建快照
module32First和module32Next枚举进程模块
PID自己提供哦,需要实时监视就做个定时器吧
下面是代码
Private Type moduleENTRY32
dwSize As Long
th32moduleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 1024
End Type
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal Handle As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapshot As Long, lppe As moduleENTRY32) As Long
Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapshot As Long, lppe As moduleENTRY32) As Long
Public Function FillModuleEntry(PID As Long) As Long
Dim pl As moduleENTRY32
Dim hSnapshot As Long
hSnapshot = CreateToolhelp32Snapshot(8, PID)
If hSnapshot Then
pl.dwSize = Len(pl)
If (module32First(hSnapshot, pl)) Then
Do
Debug.Print Left(pl.szExePath, InStr(pl.szExePath, Chr(0)) - 1)
'这里你可以把pl的信息全部提取出来
Loop Until (module32Next(hSnapshot, pl) < 1)
End If
CloseHandle (hSnapshot)
End If
CreateToolhelp32Snapshot创建快照
module32First和module32Next枚举进程模块
PID自己提供哦,需要实时监视就做个定时器吧
下面是代码
Private Type moduleENTRY32
dwSize As Long
th32moduleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 1024
End Type
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal Handle As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapshot As Long, lppe As moduleENTRY32) As Long
Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapshot As Long, lppe As moduleENTRY32) As Long
Public Function FillModuleEntry(PID As Long) As Long
Dim pl As moduleENTRY32
Dim hSnapshot As Long
hSnapshot = CreateToolhelp32Snapshot(8, PID)
If hSnapshot Then
pl.dwSize = Len(pl)
If (module32First(hSnapshot, pl)) Then
Do
Debug.Print Left(pl.szExePath, InStr(pl.szExePath, Chr(0)) - 1)
'这里你可以把pl的信息全部提取出来
Loop Until (module32Next(hSnapshot, pl) < 1)
End If
CloseHandle (hSnapshot)
End If
全部回答
- 1楼网友:蕴藏春秋
- 2021-03-11 11:07
进程关系SHELLCODER
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯