VB模拟进程管理器

VB模拟进程管理器,第1张

概述VB模拟进程管理器: '----------------------------------Option Explicit '获得进程的句柄 Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _ ByVal blnheritHand
VB模拟进程管理器:
'----------------------------------Option Explicit    '获得进程的句柄    Private Declare Function OpenProcess lib "kernel32" (ByVal DWDesiredAccess As Long,_            ByVal blnheritHandle As Long,ByVal DWAppProcessID As Long) As Long                '终止进程    Private Declare Function TerminateProcess lib "kernel32" (ByVal ApPHProcess As Long,_            ByVal uExitCode As Long) As Long    '创建一个系统快照    Private Declare Function Createtoolhelp32Snapshot lib "kernel32" _            (ByVal lFlags As Long,lProcessID As Long) As Long    '获得系统快照中的第一个进程的信息    Private Declare Function ProcessFirst lib "kernel32" Alias "Process32First" _            (ByVal mSnapShot As Long,uProcess As PROCESSENTRY32) As Long    '获得系统快照中的下一个进程的信息    Private Declare Function ProcessNext lib "kernel32" Alias "Process32Next" _            (ByVal mSnapShot As Long,uProcess As PROCESSENTRY32) 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&    End Type    Private Const TH32CS_SNAPPROCESS As Long = 2&    Dim mresultPrivate Sub Form_Load()    '配置ListVIEw控件。    lvwPRSS.ListItems.Clear    lvwPRSS.Columnheaders.Clear    lvwPRSS.Columnheaders.Add,"进程ID",1500    lvwPRSS.Columnheaders.Add,"进程名",5600    lvwPRSS.LabelEdit = lvwManual    lvwPRSS.FullRowSelect = True    lvwPRSS.Hideselection = False    lvwPRSS.HIDeColumnheaders = False    lvwPRSS.VIEw = lvwReportEnd SubPrivate Sub doList()    Dim uProcess As PROCESSENTRY32    Dim mSnapShot As Long    Dim mname As String    Dim i As Integer    Dim mListitem As ListItem    Dim msg As String    lvwPRSS.ListItems.Clear    DoEvents    '获取进程长度??    uProcess.DWSize = Len(uProcess)    '创建一个系统快照    mSnapShot = Createtoolhelp32Snapshot(TH32CS_SNAPPROCESS,0&)    If mSnapShot Then        '获取第一个进程        mresult = ProcessFirst(mSnapShot,uProcess)        '失败则返回false        do while mresult            '返回进程长度值+1,Chr(0)的作用:结束语,防止修改进程            i = InStr(1,uProcess.szexefile,Chr(0))            '转换成小写            mname = LCase$(@R_301_6823@$(uProcess.szexefile,i - 1))            '在ListvIEw控件中添加当前进程名            Set mListitem = lvwPRSS.ListItems.Add(,Text:=uProcess.th32ProcessID)            '添加进程名            mListitem.SubItems(1) = mname            '获取下一个进程            mresult = ProcessNext(mSnapShot,uProcess)        Loop    Else        ErrMsgProc (msg)    End If    cmdDelete.Enabled = (lvwPRSS.ListItems.Count > 0)End SubPrivate Sub cmdRefresh_Click()    doListEnd SubPrivate Sub Form_Activate()    doListEnd SubPrivate Sub cmdExit_Click()    Unload MeEnd Sub'ListvIEw的大小随窗体变化Private Sub Form_Resize()    '此处不能最小化,否则出错    lvwPRSS.Move 0,Me.ScaleWIDth - cmdRefresh.WIDth,Me.ScaleHeight    cmdRefresh.Move lvwPRSS.WIDth - lvwPRSS.@R_301_6823@    cmdDelete.Move lvwPRSS.WIDth - lvwPRSS.@R_301_6823@    cmdExit.Move lvwPRSS.WIDth - lvwPRSS.@R_301_6823@End Sub'强行终止当前进程Private Sub cmdDelete_Click()    If lvwPRSS.ListItems.Count = 0 Then        Exit Sub    End If    If MsgBox("真的终止" & lvwPRSS.name & " 进程吗?",vbYesNo + vbQuestion) <> vbYes Then        Exit Sub    End If      Dim mProcID As Long    '打开进程    mProcID = OpenProcess(1&,-1&,lvwPRSS.SelectedItem)    '终止进程    TerminateProcess mProcID,0&    DoEvents    lvwPRSS.ListItems.Remove (lvwPRSS.SelectedItem.Index)    lvwPRSS.RefreshEnd Sub'显示错误信息Sub ErrMsgProc(mMsg As String)    MsgBox mMsg & vbCrLf & Err.Number & Space(5) & Err.DescriptionEnd Sub
总结

以上是内存溢出为你收集整理的VB模拟进程管理器全部内容,希望文章能够帮你解决VB模拟进程管理器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1291074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存