用VB开发进程管理软件

VB项目进程管理系统的完整设计与实现 本文还有配套的精品资源,点击获取 简介:该压缩包提供了VB编程项目的一个实例,详细介绍了Visual Basic编程基础、数据库操作、用户界面设计、进程管理、任务调度、进度跟踪等关键知识点,并包括了源代码、开题报告、外文翻译资料和答辩PPT。整个项目为学习者提供了软件开发全过程的经验,涉及需求分析、设计、编码、测试和维护等环节,旨在提高学生的VB编程和项目管理能力。 ... 阅读详情
进程管理在Windows中是一个比较重要的内容,由于每一个正在运行的程序(包括Windows的后台程序和动态链接库)都对应有各自的进程,通过对进程的
管理 可以防止一些非法程序(如特洛伊木马程序)的运行,

但是Windows的任务管理器(就是按ALT+CTRL+DEL后出现的那个东东)虽然能够中止进程,不过它的进程列表里面已经屏蔽了某些与系统有关的进程,现在有的特洛伊木马(如冰河)在编程时将自己注册为 系统 服务,因此通过Windows的任务管理器并不能中止它的进程;而Windows的系统信息工具msinfo32.exe虽然能够列出系统中所有的进程,但是并不能中止进程,所以也是于事无补。

为此我们可以自己编写一个进程管理 软件 ,首先,它要能够列出系统中的所有进程,其次也要能够中止系统中任意一个进程(当然有些进程中止后将有可能导致死机)。

编程思路:列出系统进程一般的方法是通过调用一组ToolHelp32函数,该组函数存在于kernel32.dll链接库中,它有许多 功能 ,而枚举系统中的进程只是它众多功能中的一项。下面是要用到的几个关于进程的API函数:CreateToolHelpSnapshot()、ProcessFirst()、ProcessNext()。不知道是什么原因,这么重要的函数 微软 居然并没有将其录入到VB的API文本浏览器中,因此我们只好手工将其录入了,下面是声明:

Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long,ByVal lProcessID As Long) As Long

Public Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long,uProcess As PROCESSENTRY32) As Long

Public Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long,uProcess As PROCESSENTRY32) As Long  

此外还需要定义一个PROCESSENTRY32结构,这个结构中包含有有关系统中进程的某些信息,同样在VB中的API文本浏览器里也没有录入。

Public 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

下面是列出系统进程的步骤:    

1.用CreateToolHelpSnapshot()函数来创建系统中进程信息的“快照”,该函数返回一个句柄(该句柄将在下面的函数中得到应用);

2.用ProcessFirst()函数从以上“快照”中获取进程,该函数有两个参数,第一个是第一步中函数返回的句柄,第二个是指向PROCESSENTRY32结构的指针,当系统中还有其它进程时,该函数返回true;

3.用ProcessNext()函数从“快照”中不断获取进程,直到它返回false为止;

4.用CloseHandle()函数关闭第一步中的句柄。   

关 闭进程也是一个值得讨论的问题,传统的方法是用GetWindow来查找窗口句柄,再利用GetWindowText来获得窗口的标题,然后利用 SendMessage函数发送WM_CLOSE消息来关闭该程序。不过这种方法有很大的缺陷:首先是有的窗口是没有标题栏的,这样的程序是无法通过该方 法关闭的;其次,这种方法对动态链接库也是无法关闭的。在这里我们可以充分利用PROCESSENTRY32结构,它里面有一个 th32ProcessID成员,通过TerminateProcess()函数就可以关闭进程。

    下面是编程的具体步骤:

    1.新建一 工程 ,在窗体Form1中添加一个ListView控件,二个CommandButton;     

2.按如下设置控件:Command1.Caption="查看进程";Command2.Caption="中止进程";lvw.width=5400

3.在“工程”中选择“添加模块”,加入上面的函数和结构声明及以下内容:

Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long,ByVal uExitCode As Long) As Long

Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long,ByVal bInheritHandle As Long,ByVal dwProcessId As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Const TH32CS_SNAPPROCESS=&H2

Public Const TH32CS_SNAPheaplist=&H1

Public Const TH32CS_SNAPthread=&H4

Public Const TH32CS_SNAPmodule=&H8Public Const TH32CS_SNAPall=TH32CS_SNAPPROCESS+TH32CS_SNAPheaplist+TH32CS_SNAPthread+ TH32CS_SNAPmodule

Public Const MAX_PATH As Integer=260          

4.添加代码:

Private Sub command1_Click()

Dim i As Long

Dim proc As PROCESSENTRY32

Dim snap As Long

Dim exename As String

lvw.ListItems.Clear         注释:清空所有内容

snap=Create Toolhelp Snapshot(TH32CS-SNAPall,0)    注释:获得进程“快照”的句柄

proc.dwSize=Len(proc)

theloop=ProcessFirst(snap,proc)          注释:获取第一个进程,并得到其返回值

i=0

While theloop<>0        注释:当返回值非零时继续获取下一个进程

exename=proc.szExeFile

ret=lvw.ListItems.Add(,"first" & CStr(i),exename)   注释:将进程名添加到第一项中

lvw.ListItems("first" & CStr(i)).SubItems(1)=proc.th32ProcessID  注释:将进程ID添加到第二项中

i=i+1

theloop=ProcessNext(snap,proc)

Wend

CloseHandle snap       注释:关闭进程“快照”句柄

End Sub

Private Sub Command2_Click()

Dim i As Long

hand=OpenProcess(process_terminate,True,CLng(lvw.SelectedItem.SubItems(1)))   注释:获取进程句柄

TerminateProcess hand,0       注释:关闭进程

Call command1_Click         注释:调用查看进程来刷新进程列表

End Sub

Private Sub Form_Load()

Dim header As ColumnHeader

lvw.View = lvwReport

lvw.ColumnHeaders.Clear

Set header=lvw.ColumnHeaders.Add(,"first","进程",4000)    注释:设置ListView中项目的宽度,读者也可自行设置

Set header=lvw.ColumnHeaders.Add(,"second","ID",1400)

lvw.Refresh

End Sub

程序的运行界面如图所示。

程序在Windows98 中文 版、VB6.0中文企业版下运行通过。需要说明的是由于Windows95/98与WinNT中列出系统进程的Windows API函数不同,所以以上程序只能在Win95/98中运行,不能在WinNT及Win2000下运行。

  引用地址:http://blog.youkuaiyun.com/caocg504/archive/2008/01/10/2033636.aspx
VB实现Windows进程完全隐藏技术解析 在现代操作系统中,进程作为程序执行的基本单位,承担着资源分配与调度的重要职责。Windows操作系统通过一套完整的进程管理机制,实现了对应用程序的高效控制与隔离。而进程隐藏技术,则是在这一机制基础上发展出的一种高级应用,常用于系统调试、监控工具以及部分安全增强场景。本章将从进程的基本概念出发,介绍Windows系统下进程管理的核心机制,包括进程生命周期、句柄访问、权限控制等关键知识点。同时,还将简要探讨进程隐藏的实现背景、技术价值及其在不同场景下的应用潜力,为后续章节的技术实现打下坚实的理论基础。 阅读详情

相关推荐

VB进程管理器源码解析与实战

在现代操作系统中,进程(Process)是资源分配和调度的基本单位。每个进程都拥有独立的虚拟地址空间、内存映像、文件句柄集合以及至少一个执行流——即线程。而线程(Thread)是CPU调度的最小单元,它共享所属进程的所有资源,但具备独立的栈空间和程序计数器。在Windows NT架构下,进程通过EPROCESS内核结构体进行描述,该结构由NT内核维护,用户态无法直接访问。应用程序通过Win32 API间接操作这些对象。例如,当调用时,系统会为新进程分配EPROCESS。

weixin_42600128的博客 804

VB中对进程的管理

界面部分:界面上4个CommandButton按钮,一个ListBox列表框代码部分:Option ExplicitDim ProcessID() As Long                                          按list1中的进程顺序存储所有进程ID---------- API类型声明   -----------Private Type PRO

Neok HOME 2626

CloseExe v1:VB.net进程管理与优化工具

除了使用标准的异常处理结构,还可以创建自定义的异常类来提供更详细的错误信息或者更精确的异常控制。示例代码展示如何定义和使用自定义异常:' 自定义异常类End SubEnd ClassTry' 尝试执行的代码' 处理自定义的ProcessNotFoundExceptionEnd Try。

weixin_36078669的博客 633

VB遍历当前目录

Option ExplicitDim FSO As New FileSystemObjectDim currentFolder As FolderDim currentFolderName As StringDim folderItem, fileItemPrivate Sub Form_Load() currentFolderName = FSO

Neok HOME 942

用VB实现快速输入法切换功能

Windows操作系统为用户提供了多种输入法选择,使得来自不同语言背景的用户都能在计算机上高效地输入文字。Windows通过输入法管理器(Input Method Manager, IMM)来统一管理和切换这些输入法。输入法切换机制是基于输入法编辑器(Input Method Editor, IME)进行工作的,它能够根据用户的设定,在各种输入法之间快速切换。Visual Basic(VB)是微软推出的一款简单易学的编程语言,它基于BASIC语言发展而来,非常适合快速开发Windows应用程序。

weixin_29476595的博客 1376

VB实现清空桌面功能的教程

VB,即Visual Basic,是微软公司开发的一种可视化编程语言,以其简单易学、开发效率高的特点,成为了许多初学者及专业人士的首选。在VB的编程环境中,开发者可以利用各种控件来丰富程序的功能,例如按钮、文本框、列表框等。这些控件不仅使得程序界面更加友好,也为用户交互提供了便利。本章将对VB编程环境的基本组成进行介绍,包括其核心功能、界面布局以及如何添加和管理控件。我们将探讨VB中常见的控件类型,理解它们的作用以及如何在应用程序中实现特定的功能。

weixin_35649491的博客 827

VB利用WMI编写的任务管理器

Option Explicit显示XP风格函数Private Declare Sub InitCommonControls Lib "comctl32.dll" ()显示消息函数Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As Str

chenhui530的专栏 5055

VB版的仿Windows任务管理器源代码

很多程序都可以做出仿Windows系统的任务管理器程序,这是一个VB版的,界面很漂亮,不过测试中发现好像操作系统的版本显示有误...

VB实现游戏进程多开

限制进程的多开,在很多程序里面,相信不少网友已经碰到过了。比如有的进程只能单开一个,第二个无法开启。VB6.0这个语言虽然陈旧,但是其能写的软件真的很多很多。比如突破多开限制,这种有兴趣的程序。技术交流 qq 1016058890 技术交流站 www.zai996.com ...

追逐光芒,追随内心 828

vb进程管理(得到进程名和PID以及关闭、结束进程)

用vb写的进程管理程序,虽然简单,但是实现方法很实用。可以得到系统的进程名及PID,并且可以关闭进程。

VB6用OpenProcess注入exe或dll远程注入

VB6.0源码下载 用OpenProcess注入exe或dll远程注入 VB实例源码 学习用的。请不要拿这些技术去害人哦。

用vb代开关闭exe文件

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAcces

fenghome的专栏 2690

VB锁进程进程快照,Kill多的进程,可以设定你不想KIL了的进程自己改

Kill多的进程,可以设定你不想KIL了的进程自己改

VB调用EXCEL,第二次报错问题

vb调用excel,第一次运行正常,第二次运行报错,报错位置:range(cell(),cell())。网上查的是进程未关闭的原因,添加了强制关闭进程(Shell "taskkill /im EXCEL.exe /f", vbHide)结果又报“无法连接远程服务器”的错。后受网上启发,将range(cell(),cell())改为range("A1:K11"),将Selection.Copy前加x

u011756921的专栏 1882

轴承故障诊断——领域知识

幅域分析、频域分析及轴承方面的领域知识

qq_58516607的博客 3533

人工智能训练师认证教程(5)使用MONAI进行医学影像分析的完整指南

本文介绍了使用MONAI框架进行医学影像分析的全流程。首先详细说明了环境搭建步骤,包括PyTorch和MONAI的安装配置。然后以肺部CT 3D分割为例,分步骤讲解了数据准备与预处理、3D UNet模型构建、训练配置(DiceLoss损失函数、Adam优化器等)以及训练验证循环的实现。文章还包含推理可视化方法和模型导出为ONNX格式的部署方案,并强调了医学影像分析中的数据格式适配、强度归一化、显存优化等关键注意事项。最后指出MONAI的医学专用组件可大幅简化开发流程,建议后续可探索SwinUNETR等进阶方

华为开发者布道师,天府英才计划,致力于大数据+AI 的应用创新,助力企业与个人AI创新赋能。 1208

VB.net开发积累——vb关闭窗口时,让后台的进程全部关闭

VB.net开发积累——vb关闭窗口时,让后台的进程全部关闭

Arya的博客,专注后端领域 2009

DSP配置I2C通讯(非IO口软件模拟时序)

dsp即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的dsp供应商是ti公司,其tms32系列产品占据了dsp市场近一半的份额,本文以TMS320F28377D为例,使用ti公司dsp开发工具ccs10.1配置i2c模块。 写这篇文章的缘由,因为市面上很多DSP其实内部是具有硬件I2C接口的,但由于网络上大部分资料和例程都是利用IO口模拟I2C时序进而实现I2C通讯的。给很多想学习硬件I2C通讯的小伙伴带来了困难。 下面先介绍一下配置步骤 1.E

weixin_44387442的博客 5545

VB.NET实现Windows进程管理器Java教程

VB.NET实现Windows进程管理器Java教程 我的计算机系统是Windows 2000服务器版,回想当初从Win 98升级到Win 2000时,主要原因除了在Win 98下无法安装Visual Studio .Net 2002外,另外一个原因就是Win 2000自带一个我非常喜欢的可以管理进程的应用程序,通过这个管理器可以得到计算机到底运行了多少进程,在掌握那些进程属于正常进程的情况下,就可以得到计算机中那些是不正常的进程,从而判断计算机是否感染了病毒或黑客程序。可见Windows的进程管理器还是具

ccc369639963的博客 501

紫光同创PGL50H开发板实战:盘古50KN网口板的高速通信与数据处理

本文详细介绍了紫光同创PGL50H开发板(盘古50KN网口板)在高速通信与数据处理领域的实战应用。文章从开箱、核心芯片解析、开发环境搭建入手,重点讲解了如何配置与测试其8路千兆以太网接口和SFP光纤接口,并深入探讨了FPGA与DDR3协同进行多路数据汇聚处理的系统架构与调试方法,为网络通信与高速数据处理系统开发提供了宝贵的实践经验。

weixin_28256233的博客 452

Python实现PDB文件预处理

蛋白质结构研究依赖PDB文件存储的三维结构数据,但原始文件常含无关的水分子、离子和非标准残基等干扰信息。本文介绍了一个基于BioPython的Python预处理脚本,可自动清理PDB文件,主要功能包括:1)移除短于阈值的蛋白质链;2)过滤非标准氨基酸;3)可选保留水分子和金属离子。该脚本逻辑清晰,支持批量处理,能显著提升结构比对、分子对接等分析前的数据准备效率,为后续生物信息学研究提供更纯净的结构数据基础。

Protein Designer的博客 568

用vb.net精彩案例

用vb.net实现写字板程序报告http://www.qqread.com/vbdotnet/d283416.html VB.NET实现Windows进程管理器http://www.qqread.com/vbdotnet/i642231000.html更多》http://www.qqread.com/vbdotnet/pic/index.html

good9006的专栏 1342

代码复现3—VLN-CE

运行训练完后在 data文件下会自动生成一个“checkpoints”文件,文件下包含任务文件“seq2seq”,该文件下会包括训练出来的权重和评估结果。数据集下载完后路径提取:data/scene_datasets/mp3d/{scene}/{scene}.glb。注意这里下载的数据集并不是所有的matterport3d,只需要一部分,包含90个场景,大小压缩后约16G。在“eval”时,会在data文件下生成videos文件,里面存放的是可视化的轨迹视频。

qq_44100524的博客 3202
上一篇: 返回符合进程名称的所有进程PID
linux_wolfelite
博客等级 码龄20年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值