用vb编程大神看看我这配置如何都来看看

今日: 3728|昨日: 12803|帖子: |欢迎新会员:
启迪新世界版主: , ,
274 / 29257
相约法兰西版主: , ,
3310 / 191358
| 版主: , , ,
79299 / 5652141
┣ [FPS/TPS]
┣ [ETC] 版主: , , ,
76308 / 1626499
从今天开始 创造未来
┣ [FPS/TPS]
┣ [FTG] |
| 版主: , ,
14318 / 195145
天下玩友是一家
┣ [FPS/TPS]
┣ [RAC] 版主: , , ,
777 / 11748
|&& | 版主: ,
42413 / 688068
┗ 版主: ,
3785 / 182862
盗贼的终点 船长的新生版主: , , ,
9830 / 120344
大家的未来在这里集结版主: , ,
1477 / 22353
欢迎来到血与酒的国度版主:
6568 / 69886
—— 双子之王与预言的终结
双子称王 七国演义版主: ,
11450 / 118896
这个世界需要英雄版主:
225 / 5195
天堂有路你不走 地狱门开眼茫茫版主: ,
163 / 1790
恶魔心 黑魂力 血源体 死个痛
3月24日日版先行来袭!
4月12日主机中文版、steam等降临!版主: , ,
33697 / 354554
Fortune Venus
欢迎再临扎克岛,请自备补品,文明观球版主: , ,
7713 / 94740
149460 / 2125893
112304 / 1135210
┣ [FPS/TPS]
26649 / 286079
100933 / 1914256
破解相关话题在此发布讨论版主:
53157 / 559529
┣ [FPS/TPS]
38241 / 487056
189243 / 2356761
46930 / 515524
┗ [SPG] 版主:
21595 / 306758
┣ [ETC] 版主: ,
29259 / 495459
36470 / 443775
19051 / 115157
8390 / 115306
┣ [ETC] 版主:
12002 / 219105
| 版主: , ,
17926 / 199958
5183 / 73381
主题: 56279, 帖数: 1245012
主题: 66543, 帖数: 774881
主题: 38895, 帖数: 451744
主题: 33927, 帖数: 385209
主题: 21991, 帖数: 142100
主题: 25954, 帖数: 306737
主题: 20791, 帖数: 285364
主题: 6126, 帖数: 60542
主题: 10666, 帖数: 183379
157031 / 1897493
69206 / 722207
66595 / 1033322
103047 / 2110111
46128 / 648032
47603 / 665074
20741 / 239526
51993 / 646499
66512 / 205151
18070 / 588492
45359 / 253334
4865 / 48391
20875 / 567506
30011 / 603311
鹰击长空,鱼翔浅底,万类霜天竞自由版主: , ,
118626 / 5139115
收集建议和意见【发帖分数下限:10点】
12832 / 99856
Powered by
扫描二维码
下载 A9VG 客户端(iOS, Android)共有 501 人关注过本帖
标题:求大神帮我看看,用VB写的获得TCP协议网络状态,打开不显示东西
等 级:新手上路
&&问题点数:0&&回复次数:0&&&
求大神帮我看看,用VB写的获得TCP协议网络状态,打开不显示东西
’用vb6写的,一个Frm_Main窗口一个ListView控件一个Timer控件
’Frm_Main代码
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
&&heaphwd = GetProcessHeap() '获取调用过程堆句柄
Private Sub Timer1_Timer()
&Dim ret As Boolean
&&& On Error Resume Next
&&& ret = InternetGetConnectedState(0, 0)
&&& If ret Then
&&&&&&&&GetNetState
&&& End If
&&& On Error GoTo 0
’添加模块Mdl_GetNetState代码
Option Explicit
Public Declare Function InternetGetConnectedState Lib &wininet& (lpdwFlags As Long, ByVal dwReserved As Long) As Boolean
'For netstat
Private Const PROCESS_VM_READ&&&&&&&&&&&&&&&As Long = &H10
Private Const PROCESS_QUERY_INFORMATION&&&&&As Long = &H400
Private Const MIB_TCP_STATE_CLOSED&&&&&&&&& As Long = 1
Private Const MIB_TCP_STATE_LISTEN&&&&&&&&& As Long = 2
Private Const MIB_TCP_STATE_SYN_SENT&&&&&&&&As Long = 3
Private Const MIB_TCP_STATE_SYN_RCVD&&&&&&&&As Long = 4
Private Const MIB_TCP_STATE_ESTAB&&&&&&&&&&&As Long = 5
Private Const MIB_TCP_STATE_FIN_WAIT1&&&&&& As Long = 6
Private Const MIB_TCP_STATE_FIN_WAIT2&&&&&& As Long = 7
Private Const MIB_TCP_STATE_CLOSE_WAIT&&&&&&As Long = 8
Private Const MIB_TCP_STATE_CLOSING&&&&&&&&&As Long = 9
Private Const MIB_TCP_STATE_LAST_ACK&&&&&&&&As Long = 10
Private Const MIB_TCP_STATE_TIME_WAIT&&&&&& As Long = 11
Private Const MIB_TCP_STATE_DELETE_TCB&&&&&&As Long = 12
Private Type PMIB_UDPEXROW
&&& dwLocalAddr&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwLocalPort&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwProcessId&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
Private Type PMIB_TCPEXROW
&&& dwStats&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& As Long
&&& dwLocalAddr&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwLocalPort&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwRemoteAddr&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwRemotePort&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
&&& dwProcessId&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
Public heaphwd&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&As Long
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
Private Declare Function AllocateAndGetTcpExTableFromStack Lib &iphlpapi.dll& (ByRef pTcpTable As Any, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByRef bOrder As Boolean, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal heap As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal zero As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal flags As Long) As Long
Private Declare Function AllocateAndGetUdpExTableFromStack Lib &iphlpapi.dll& (ByRef pTcpTable As Any, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByRef bOrder As Boolean, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal heap As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal zero As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal flags As Long) As Long
Private Declare Sub CopyMemory Lib &kernel32.dll& Alias &RtlMoveMemory& (Destination As Any, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Source As Any, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ByVal Length As Long)
Private Declare Function lstrlen Lib &kernel32& Alias &lstrlenA& (ByVal lpString As String) As Long
Private Declare Function HeapFree Lib &kernel32& (ByVal hHeap As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ByVal dwFlags As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&lpMem As Any) As Long
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
Public Declare Function GetProcessHeap Lib &kernel32.dll& () 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 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 GetModuleFileNameExA Lib &psapi.dll& (ByVal hProcess As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ByVal hModule As Long, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ByVal lpFileName As String, _
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ByVal nSize As Long) As Long
Private Function GetIpString(ByVal Value As Long) As String '获取ip字符串
Dim table(3) As Byte
&&& CopyMemory table(0), Value, 4
&&& GetIpString = table(0) & &.& & table(1) & &.& & table(2) & &.& & table(3)
End Function
Private Function GetPortNumber(ByVal Value As Long) As Long '获取端口号
&&& GetPortNumber = (Value / 256) + (Value Mod 256) * 256
End Function
Private Function GetProcessName(ByVal ProcessID As Long) As String '获取进程名称
&&& Dim strName&&As String * 1024
&&& Dim hProcess As Long
&&& Dim cbNeeded As Long
&&& Dim hMod&&&&&As Long
&&& Select Case ProcessID
&&& Case 0
&&&&&&&&GetProcessName = &Proccess Inactive&
&&& Case 4
&&&&&&&&GetProcessName = &System&
&&& Case Else
&&&&&&&&GetProcessName = &Unknown&
&&& End Select
&&& hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessID)
&&& If hProcess Then
&&&&&&&&If EnumProcessModules(hProcess, hMod, Len(hMod), cbNeeded) Then '枚举进程中模块
&&&&&&&&&&&&GetModuleBaseName hProcess, hMod, strName, Len(strName) '获取模块基本名称
&&&&&&&&&&&&GetProcessName = Left$(strName, lstrlen(strName)) '返回模块基本名称
&&&&&&&&End If
&&&&&&&&CloseHandle hProcess
&&& End If
End Function
Private Function GetState(ByVal Value As Long) As String
&&& Select Case Value
&&& Case MIB_TCP_STATE_ESTAB
&&&&&&&&GetState = &ESTABLISH& '建立
&&& Case MIB_TCP_STATE_CLOSED
&&&&&&&&GetState = &CLOSED& '关闭
&&& Case MIB_TCP_STATE_LISTEN
&&&&&&&&GetState = &LISTEN& '监听
&&& Case MIB_TCP_STATE_CLOSING '关闭中
&&&&&&&&GetState = &CLOSING&
&&& Case MIB_TCP_STATE_LAST_ACK
&&&&&&&&GetState = &LAST_ACK& '最后一次应答
&&& Case MIB_TCP_STATE_SYN_SENT
&&&&&&&&GetState = &SYN_SENT&
&&& Case MIB_TCP_STATE_SYN_RCVD
&&&&&&&&GetState = &SYN_RCVD&
&&& Case MIB_TCP_STATE_FIN_WAIT1
&&&&&&&&GetState = &FIN_WAIT1&
&&& Case MIB_TCP_STATE_FIN_WAIT2
&&&&&&&&GetState = &FIN_WAIT2&
&&& Case MIB_TCP_STATE_TIME_WAIT
&&&&&&&&GetState = &TIME_WAIT& '等待时间
&&& Case MIB_TCP_STATE_CLOSE_WAIT
&&&&&&&&GetState = &CLOSE_WAIT& '关闭等待
&&& Case MIB_TCP_STATE_DELETE_TCB
&&&&&&&&GetState = &DELETE_TCB& '删除TCB
&&& End Select
End Function
Public Sub GetNetState()
&&& Dim TcpExTable() As PMIB_TCPEXROW
&&& Dim UdpExTable() As PMIB_UDPEXROW
&&& Dim Pointer&&&&&&As Long
&&& Dim Number&&&&&& As Long
&&& Dim Size&&&&&&&&&As Long
&&& Dim i&&&&&&&&&&&&As Long
&&& Dim tmp(9, 1000) As String
&&& Dim ret&&&&&& As Boolean
&&& On Error Resume Next
&&& On Error GoTo 0
&&& Frm_Main.ListView1.ListItems.Clear
&&& DoEvents
&&& 'for TCP
&&& On Error Resume Next
&&& '***********************************************************************************************
&&& '***&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TCP 网 络 连 接 (开始)&&&&&&&&&&&&&&&&&&&&&&&&&&& ***
&&& '***********************************************************************************************
&&& If AllocateAndGetTcpExTableFromStack(Pointer, True, heaphwd, 2, 2) = 0 Then&&'分配并获取TCPextable
&&&&&&&&CopyMemory Number, ByVal Pointer, 4
&&&&&&&&If Number Then
&&&&&&&&&&&&ReDim TcpExTable(Number - 1) As PMIB_TCPEXROW '重定义数组
&&&&&&&&&&&&Size = Number * Len(TcpExTable(0)) '获取要传递的长度
&&&&&&&&&&&&CopyMemory TcpExTable(0), ByVal Pointer + 4, Size '数组传递
&&&&&&&&&&&&For i = 0 To UBound(TcpExTable)
&&&&&&&&&&&&&&& tmp(0, i) = &TCP&
&&&&&&&&&&&&&&& tmp(1, i) = GetIpString(TcpExTable(i).dwLocalAddr) '获取本地地址
&&&&&&&&&&&&&&& tmp(2, i) = GetPortNumber(TcpExTable(i).dwLocalPort) '获取本地端口
&&&&&&&&&&&&&&& If GetIpString(TcpExTable(i).dwRemoteAddr) = &0.0.0.0& Then '当没获取IP时
&&&&&&&&&&&&&&&&&&&&tmp(3, i) = &&
&&&&&&&&&&&&&&&&&&&&tmp(4, i) = &&
&&&&&&&&&&&&&&&&&&&&tmp(5, i) = &&
&&&&&&&&&&&&&&& Else
&&&&&&&&&&&&&&&&&&&&With TcpExTable(i)
&&&&&&&&&&&&&&&&&&&&&&&&tmp(3, i) = GetIpString(.dwRemoteAddr) '获取远程IP
&&&&&&&&&&&&&&&&&&&&&&&&'&&&&&&&&&&&&&&&&&&&&&&&&tmp(4, i) = && 'GetIpString(.dwRemoteAddr) '获取远程服务器名
&&&&&&&&&&&&&&&&&&&&&&&&tmp(4, i) = GetPortNumber(.dwRemotePort) '获取远程端口号
&&&&&&&&&&&&&&&&&&&&End With 'TcpExTable(i)
&&&&&&&&&&&&&&& End If
&&&&&&&&&&&&&&& With TcpExTable(i)
&&&&&&&&&&&&&&&&&&&&tmp(5, i) = GetState(.dwStats) '获取状态
&&&&&&&&&&&&&&&&&&&&tmp(6, i) = .dwProcessId '获取进程ID
&&&&&&&&&&&&&&&&&&&&tmp(7, i) = GetProcessName(.dwProcessId) '获取进程名称
&&&&&&&&&&&&&&&&&&&&tmp(8, i) = ProcessPathByPID(.dwProcessId) '获取进程路径
&&&&&&&&&&&&&&& End With 'TcpExTable(i)
&&&&&&&&&&&&Next i
&&&&&&&&End If
&&&&&&&&HeapFree heaphwd, 0, ByVal Pointer '释放从堆中分配的内存
&&&&&&&&For i = 0 To UBound(TcpExTable)
&&&&&&&&&&&&With Frm_Main.ListView1.ListItems.Add
&&&&&&&&&&&&&&& .Text = tmp(0, i)
&&&&&&&&&&&&&&& .SubItems(1) = tmp(1, i)
&&&&&&&&&&&&&&& .SubItems(2) = tmp(2, i)
&&&&&&&&&&&&&&& .SubItems(3) = tmp(3, i)
&&&&&&&&&&&&&&& .SubItems(4) = tmp(4, i)
&&&&&&&&&&&&&&& .SubItems(5) = tmp(5, i)
&&&&&&&&&&&&&&& .SubItems(6) = tmp(6, i)
&&&&&&&&&&&&&&& .SubItems(7) = tmp(7, i)
&&&&&&&&&&&&&&& .SubItems(8) = tmp(8, i)
&&&&&&&&&&&&&&& '&&&&&&&&&&&&&&& .SubItems(9) = tmp(9, i)
&&&&&&&&&&&&End With
&&&&&&&&Next i
&&& End If
&&& '***********************************************************************************************
&&& '***&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TCP 网 络 连 接 (结束)&&&&&&&&&&&&&&&&&&&&&&&&&&& ***
&&& '***********************************************************************************************
&&& '--------------------------------------------------------------------------------------------------------------
&&& '***********************************************************************************************
&&& '***&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& UDP 网 络 连 接 (开始)&&&&&&&&&&&&&&&&&&&&&&&&&&& ***
&&& '***********************************************************************************************
&&& If AllocateAndGetUdpExTableFromStack(Pointer, True, heaphwd, 2, 2) = 0 Then '分配并获取UDPextable
&&&&&&&&CopyMemory Number, ByVal Pointer, 4 '赋值
&&&&&&&&If Number Then '当值大于0时
&&&&&&&&&&&&ReDim UdpExTable(Number - 1) As PMIB_UDPEXROW
&&&&&&&&&&&&Size = Number * Len(UdpExTable(0))
&&&&&&&&&&&&CopyMemory UdpExTable(0), ByVal Pointer + 4, Size '传递UdpExTable对象
&&&&&&&&&&&&For i = 0 To UBound(UdpExTable)
&&&&&&&&&&&&&&& tmp(0, i) = &UDP&
&&&&&&&&&&&&&&& tmp(1, i) = GetIpString(UdpExTable(i).dwLocalAddr) '本地地址
&&&&&&&&&&&&&&& tmp(2, i) = GetPortNumber(UdpExTable(i).dwLocalPort) '本地端口
&&&&&&&&&&&&&&& tmp(3, i) = &&
&&&&&&&&&&&&&&& tmp(4, i) = &&
&&&&&&&&&&&&&&& tmp(5, i) = &&
&&&&&&&&&&&&&&& tmp(6, i) = &LISTEN&
&&&&&&&&&&&&&&& With UdpExTable(i)
&&&&&&&&&&&&&&&&&&&&tmp(7, i) = .dwProcessId
&&&&&&&&&&&&&&&&&&&&tmp(8, i) = GetProcessName(.dwProcessId)
&&&&&&&&&&&&&&&&&&&&tmp(9, i) = ProcessPathByPID(.dwProcessId)
&&&&&&&&&&&&&&& End With 'UdpExTable(i)
&&&&&&&&&&&&Next i
&&&&&&&&&&&&For i = 0 To UBound(UdpExTable)
&&&&&&&&&&&&&&& With Frm_Main.ListView1.ListItems.Add '添加列表项
&&&&&&&&&&&&&&&&&&&&.Text = tmp(0, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(1) = tmp(1, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(2) = tmp(2, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(3) = tmp(3, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(4) = tmp(4, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(5) = tmp(5, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(6) = tmp(6, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(7) = tmp(7, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(8) = tmp(8, i)
&&&&&&&&&&&&&&&&&&&&.SubItems(9) = tmp(9, i)
&&&&&&&&&&&&&&& End With
&&&&&&&&&&&&Next i
&&&&&&&&End If
&&&&&&&&'***********************************************************************************************
&&&&&&&&'***&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& UDP 网 络 连 接 (结束)&&&&&&&&&&&&&&&&&&&&&&&&&&& ***
&&&&&&&&'***********************************************************************************************
&&&&&&&&HeapFree heaphwd, 0, ByVal Pointer '释放从堆中分配的内存
&&& End If
&&& DoEvents
&&& On Error GoTo 0
Private Function ProcessPathByPID(PID As Long) As String '根据PID获取进程路径
&&& Dim cbNeeded&&&&&&&&&&&As Long
&&& Dim Modules(1 To 2000) As Long
&&& Dim ret&&&&&&&&&&&&&&& As Long
&&& Dim ModuleName&&&&&&&&&As String
&&& Dim nSize&&&&&&&&&&&&&&As Long
&&& Dim hProcess&&&&&&&&&&&As Long
&&& 'PROCESS_QUERY_INFORMATION:Enables using the process handle in the GetExitCodeProcess and GetPriorityClass functions to read information from the process object.
&&& 'PROCESS_VM_READ:Enables using the process handle in the ReadProcessMemory function to read from the virtual memory of the process
&&& hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, PID) '进程句柄
&&& If hProcess && 0 Then
&&&&&&&&ret = EnumProcessModules(hProcess, Modules(1), 20000, cbNeeded) '返回指定进程中所有模块
&&&&&&&&If ret && 0 Then
&&&&&&&&&&&&ModuleName = Space$(260)
&&&&&&&&&&&&nSize = 5000
&&&&&&&&&&&&ret = GetModuleFileNameExA(hProcess, Modules(1), ModuleName, nSize) '获取模块路径
&&&&&&&&&&&&ProcessPathByPID = Left$(ModuleName, ret) '返回模路径
&&&&&&&&End If
&&& End If
&&& ret = CloseHandle(hProcess) '关闭一个内核对象
&&& If LenB(ProcessPathByPID) = 0 Then
&&&&&&&&ProcessPathByPID = &SYSTEM&
&&& End If
End Function
搜索更多相关主题的帖子:
版权所有,并保留所有权利。
Powered by , Processed in 0.030866 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved急求会用VB的大神解救!!!!!!
[问题点数:50分]
急求会用VB的大神解救!!!!!!
[问题点数:50分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年11月 VB大版内专家分月排行榜第二
2016年3月 VB大版内专家分月排行榜第三2012年9月 VB大版内专家分月排行榜第三
2011年5月 VB大版内专家分月排行榜第三2011年4月 VB大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 30岁学编程成为大神 的文章

 

随机推荐