VB 断开指定进程网络连接函数,通过指定进程名字,断开该进程的网络连接。

Private Const PROCESS_QUERY_INFORMATION = 1024
Private Const PROCESS_VM_READ = 16
Private Const MAX_PATH = 256
Private Const AF_INET6 = 23
Private Const AF_INET = 2
Public Enum TCP_TABLE_CLASS
    TCP_TABLE_BASIC_LISTENER
    TCP_TABLE_BASIC_CONNECTIONS
    TCP_TABLE_BASIC_ALL
    TCP_TABLE_OWNER_PID_LISTENER
    TCP_TABLE_OWNER_PID_CONNECTIONS
    TCP_TABLE_OWNER_PID_ALL
    TCP_TABLE_OWNER_MODULE_LISTENER
    TCP_TABLE_OWNER_MODULE_CONNECTIONS
    TCP_TABLE_OWNER_MODULE_ALL
End Enum
Private Type MIB_TCPROW_OWNER_PID
    dwState As Long
    dwLocalAddr As Long
    dwLocalPort As Long
    dwRemoteAddr As Long
    dwRemotePort As Long
    dwOwningPid As Long
End Type
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal Handle As Long) As Long
Public Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
Public Declare Function GetModuleFileNameExA Lib "psapi.dll" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Public Declare Function EnumProcessModules Lib "psapi.dll" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
Private Declare Function htons Lib "ws2_32.dll" (ByVal dwLong As Long) As Long
Public Declare Function GetExtendedTcpTable Lib "IPHLPAPI.DLL" (pTcpTableEx As Any, lSize As Long, ByVal bOrder As Long, ByVal Flags As Long, ByVal TableClass As TCP_TABLE_CLASS, ByVal bReserved As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function SetTcpEntry Lib "IPHLPAPI.DLL" (ByRef pTcpTable As MIB_TCPROW_OWNER_PID) As Long
Private 进程表指针() As Byte
Public R行 As Long
Private 数据参考 As Long

Public Function 刷新() As Boolean
    Dim 指针大小 As Long, 参考 As Long
    指针大小 = 4
    参考 = GetExtendedTcpTable(0&, 指针大小, 1, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0)
    ReDim 进程表指针(指针大小 - 1)
    参考 = GetExtendedTcpTable(进程表指针(0), 指针大小, 1, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0)
    If 参考 = 0 Then
        CopyMemory R行, 进程表指针(0), 4
    Else
        刷新 = False
        Exit Function
    End If
    If R行 = 0 Or 进程表指针(0) Then
        刷新 = False
        Exit Function
    End If
End Function

Public Function 切断程序网络链接(进程名 As String)
    On Error Resume Next
    Dim i As Long
    Dim TCP表 As MIB_TCPROW_OWNER_PID
    数据参考 = 0
    Dim 进程名称 As String
    For i = 0 To R行
        进程名称 = ""
        CopyMemory TCP表, 进程表指针(0 + 数据参考 + 4), LenB(TCP表)
        If TCP表.dwRemoteAddr <> 0 Or 取端口号(TCP表.dwRemotePort) <> 0 Or 取端口号(TCP表.dwLocalPort) <> 0 Then
            ' Debug.Print "状态:"; c_state(TCP表.dwState); ",";
            ' Debug.Print "本地IP:"; 获取IP地址(TCP表.dwLocalAddr); ",";
            ' Debug.Print "本地PORT:"; 取端口号(TCP表.dwLocalPort); ",";
            ' Debug.Print "远程IP:"; TCP表.dwRemoteAddr; ",";
            ' Debug.Print "远程PORT:"; 取端口号(TCP表.dwRemotePort); ",";
            ' Debug.Print "进程ID:"; TCP表.dwOwningPid; ",";
            ' Debug.Print "进程名:"; 获取进程路径(TCP表.dwOwningPid)
            进程名称 = 获取IP地址(TCP表.dwRemoteAddr) & 获取进程路径(TCP表.dwOwningPid)
            If InStr(LCase$(进程名称), LCase$(进程名)) > 0 Then
                TCP表.dwState = 12
                SetTcpEntry TCP表
            End If
        End If
        数据参考 = 数据参考 + LenB(TCP表)
        DoEvents
    Next i
End Function
Public Function 取端口号(ByVal dwPort As Long) As Long
    取端口号 = htons(dwPort)
End Function
Public Function 获取IP地址(dwAddr As Long) As String
    Dim IP数据(3) As Byte
    CopyMemory IP数据(0), dwAddr, 4
    获取IP地址 = CStr(IP数据(0)) & "." & CStr(IP数据(1)) & "." & CStr(IP数据(2)) & "." & CStr(IP数据(3))
End Function
Public Function 获取进程路径(pid As Long) As String
    Dim cbNeeded As Long
    Dim Modules(1 To 200) As Long
    Dim nSize As Long
    Dim lRet As Long
    Dim ModuleName As String
    Dim hProcess As Long
    If pid = 0 Then 获取进程路径 = "": Exit Function
    If pid = 4 Then 获取进程路径 = "": Exit Function
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, pid)
    If hProcess <> 0 Then
        lRet = EnumProcessModules(hProcess, Modules(1), 200, cbNeeded)
        If lRet <> 0 Then
            ModuleName = Space$(MAX_PATH)
            nSize = MAX_PATH
            lRet = GetModuleFileNameExA(hProcess, Modules(1), ModuleName, nSize)
            If CBool(InStr(1, (Left$(ModuleName, lRet)), "", vbTextCompare)) Then
                获取进程路径 = Left$(ModuleName, lRet)
            End If
        End If
    End If
    lRet = CloseHandle(hProcess)
End Function

摘自:网络整理

更多精彩>>>

VB 断开指定进程网络连接函数相关推荐

  1. 监视和截获指定进程网络数据传输WSockExpert0.6 工具介绍和使用实例

    喜欢脚本入侵技术的朋友,一定听说过闹得纷纷扬扬的上传漏洞吧!有许多利用上传漏洞的工具,比如桂林老兵的"动网上传漏洞利用工具"."天意上传漏洞工具"等,但是大家在 ...

  2. 易语言服务器怎么断开连接,易语言断开进程网络连接源码

    .版本 2 .支持库 iext .支持库 eAPI .程序集 窗口程序集1 .程序集变量 进程信息, 进程连接信息, , "0" .程序集变量 状态数组, 文本型, , " ...

  3. 按键精灵移动端系列 - 按键精灵IOS版 之 网络已断开,请检查网络连接.解决方案.

    由于很多网友对这种问题,不知道如何处理.因本人也曾遇到过这种情况.经过不懈努力终于解决了这个神奇的BUG.长话短说上操作流程.如果觉得给力,请三连 点赞. 收藏. 转发. 谢谢您的支持. ** 1 安 ...

  4. C#实现网络监控,网络连接是否断开

    C#实现网络监控 利用C#代码实现网络监控,如果出现断网,进行后续处理(如,重启,设置重连,用户提示等) 注意:最开始看的文章也不知道在哪里了,标注转载需要转载原文链接,此处就标记了原著 实现方法: ...

  5. 电脑断开,电脑怎么断开网络连接

    在安装软件或者进行一些程序测试时需要断开网络,以下是"电脑怎么断开网络连接"希望能够帮助的到您! 方法/步骤 在桌面右下方找到图中的显示屏小图标,右键单击*出如图菜单,选择打开网络 ...

  6. 如何启用计算机上的无线网络连接,告诉大家win10无线网络连接如何打开

    有不少的网友想知道win10无线网络连接如何打开呢?其实win10无线网络连接如何打开的方法是很简单的,下面就让我给大家介绍一下关于win10无线网络连接如何打开的解决方法吧. win10无线网络连接 ...

  7. Android网络连接监听

    接收系统网络服务的广播接收者 public class NetStateReceiver extends BroadcastReceiver {private Handler handler;publ ...

  8. VB判断指定名字的进程是否存在函数

    '============================================================= '函数名:CheckApplicationIsRun '作 用:判断进程是 ...

  9. 指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请断开所有现有的连接到网络共享的映射...

    什么情况?我是win7 32 系统,对方是xp64 . 解决办法: 当映射网络驱动器到文件服务器时,发现有些文件夹可以被映射,有些文件夹却不能被映射. 在输入了用户名和密码后弹出以下错误信息:&quo ...

最新文章

  1. 鸿蒙操作系统在使用了吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  2. iOS Core Bluetooth 基础知识
  3. 【Matlab 控制】仿真多智体一致性分析,附代码
  4. Python和Java就业前景对比
  5. qq html制作,jquery学习练习:制作QQ简易聊天框
  6. 2018-2019-1 20165303 实验五 通讯协议设计
  7. mysql索引1908
  8. POSIX规范-unbuffered I/O (文件I/O)
  9. SSL 1613——最短路径问题(最短路)
  10. Bootstrap 媒体对象
  11. [note]标点符号和数学符号所对应的英文
  12. 网络编程-TCP/IP各层介绍(5层模型讲解)
  13. hihocoder 1043 完全背包
  14. 李瑾博士:信誉的建立是否“不计成本”?
  15. Atitit 常见每日流程日程日常工作.docx v9 每次pertime Atitit 常见每日每天流程日程日常工作 v9 raf attilax总结分享.docx Ver history i
  16. linux 数据转为曲线图,Linux系统下生成TPS,ResponseTime曲线图
  17. 数据库常用增删改查语句
  18. PHP中根据汉字返回拼音
  19. Java中涉及到金钱计算方法
  20. Dao接口返回数组_在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?...

热门文章

  1. 百行代码带你入门 vue-router!
  2. 转行 AI 成为技术大牛,你需要理解这两项技术!
  3. 四次面试:程序员越来越悲催了?
  4. 李彦宏:AI 企业要保护隐私;罗永浩回应酷派“欠钱不还”;ofo 郑州公司人去楼空 | 极客头条...
  5. 一文了解 AI 改变生活的 14 种姿势
  6. mysql 5.6参数_初识 MySQL 5.6 新功能、参数
  7. 满满干货!mysql定时任务每天固定时间执行
  8. 第 6 章 本地方法接口
  9. linux查看/etc/fastab,/etc/fastab文件丢失致系统宕机的解决方案
  10. 右键新建里面没有word和excel_Excel中为什么修改了新建工作簿的选项,新建以后还是没有生效...