VB获取所有进程+结束进程(COX控件)

2023-10-18 12:10

本文主要是介绍VB获取所有进程+结束进程(COX控件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
1、添加一个 “添加用户控件”,命名为“StartupList”,代码如下:
Option Explicit
Private Declare Function CreateToolhelpSnapshot Lib “kernel32” Alias “CreateToolhelp32Snapshot” (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib “kernel32” Alias “Process32First” (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib “kernel32” Alias “Process32Next” (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function TerminateProcess Lib “kernel32” (ByVal hProcess As Long, ByVal uExitCode As Long) 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
Const MAX_PATH As Integer = 260
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 * MAX_PATH
End Type
Const TH32CS_SNAPheaplist = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPthread = &H4
Const TH32CS_SNAPmodule = &H8
Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
Dim WithEvents StartTheItem_ID As ListBox 'ID列表
Dim WithEvents Startup As ListBox '显示启动项列表

Private Sub Startup_Click()
StartTheItem_ID.ListIndex = Startup.ListIndex
End Sub

Private Sub UserControl_Initialize()
UserControl.AutoRedraw = True
Set StartTheItem_ID = UserControl.Controls.Add(“VB.ListBox”, “StartTheItem_ID”)
Set Startup = UserControl.Controls.Add(“VB.ListBox”, “Startup”)
StartTheItem_ID.Visible = False
Startup.Appearance = 0: Startup.Visible = True
Call Refresh
End Sub

Private Sub UserControl_Resize()
Startup.Move 0, 0, UserControl.ScaleWidth, UserControl.ScaleHeight
UserControl.Height = Startup.Height
End Sub

Public Sub Refresh() '刷新
Dim I As Long, lPid As Long, Proc As PROCESSENTRY32, hSnapShot As Long
StartTheItem_ID.Clear
Startup.Clear
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) '获得进程“快照”的句柄
Proc.dwSize = Len(Proc)
lPid = ProcessFirst(hSnapShot, Proc) '获取第一个进程的PROCESSENTRY32结构信息数据
I = 0
Do While lPid <> 0 '当返回值非零时继续获取下一个进程
StartTheItem_ID.AddItem Hex(Proc.th32ProcessID)
Startup.AddItem Proc.szExeFile
I = I + 1
lPid = ProcessNext(hSnapShot, Proc) '循环获取下一个进程的PROCESSENTRY32结构信息数据
Loop
CloseHandle hSnapShot '关闭进程“快照”句柄
End Sub

Public Function CloseProcess() As Boolean '关闭进程,成功返回 True,失败返回 False
Dim lPHand As Long, TMBack As Long
lPHand = Val("&H" & StartTheItem_ID.List(StartTheItem_ID.ListIndex))
lPHand = OpenProcess(1&, True, lPHand) '获取进程句柄
TMBack = TerminateProcess(lPHand, 0&) '关闭进程
CloseProcess = IIf(TMBack <> 0, True, False)
CloseHandle lPHand
If CloseProcess Then Call Refresh '刷新进程列表
End Function

Public Function TipOff() As Long '关闭进程时返回一个提示信息
If Startup.ListCount <> 0 Then
TipOff = IIf(Startup.Text <> “”, 1, 0)
Else
TipOff = -1
End If
End Function

Public Function List()
List = Startup.List(Startup.ListIndex)
End Function

2、在FORM里把StartupList添加到窗体和两个Command1、Command2,代码如下:
Option Explicit
Private Sub Command1_Click()
StartupList1.Refresh
End Sub

Private Sub Command2_Click()
Dim I As Long, D As Boolean
If StartupList1.TipOff > 0 Then
I = MsgBox(“真的要关闭:” & StartupList1.List & " 吗?", vbYesNo, “提示”)
If I = 6 Then
D = StartupList1.CloseProcess
MsgBox IIf(D, “关闭进程成功!”, “关闭进程失败!”), vbOKOnly, “提示”
End If
End If
End Sub

Private Sub Form_Load()
Command1.Caption = “刷新”
Command2.Caption = “结束进程”
End Sub

这篇关于VB获取所有进程+结束进程(COX控件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232494

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并