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

2024-04-30 09:58

本文主要是介绍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/948558

相关文章

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多