首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息存放在PROCESSENTRY32结构类型的实例中,然后显示出来。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Winxp+vb6+sp6
代码如下:
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
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 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 * 1024
End Type
Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000
'添加listview控件,3个按钮
'删除listview中选定的进程
Private Sub Command2_Click()
If MsgBox("你想删除 " & ListView1.SelectedItem.SubItems(2) & " 进程?", vbYesNo + vbQuestion) <> vbYes Then
Exit Sub
End If
Dim mProcID As Long
mProcID = OpenProcess(1&, -1&, ListView1.SelectedItem)
TerminateProcess mProcID, 0&
DoEvents
ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
ListView1.Refresh
End Sub
'得到进程填充listview
Private Sub Command1_Click()
Dim my As PROCESSENTRY32
Dim l As Long
Dim l1 As Long
Dim mlistitem As ListItem
' List1.Clear
l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then '遍历第一个进程
Do
Set mlistitem = ListView1.ListItems.Add(, , my.th32ProcessID)
mlistitem.SubItems(1) = my.th32ParentProcessID
mlistitem.SubItems(2) = my.szExeFile
Loop Until (Process32Next(l, my) < 1) '遍历所有进程知道返回值为False
End If
l1 = CloseHandle(l)
End If
End Sub
Private Sub Form_Load()
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
ListView1.FullRowSelect = True
ListView1.ColumnHeaders.Add , , "Process ID", 1500
ListView1.ColumnHeaders.Add , , "Process Parent ID", (1500)
ListView1.ColumnHeaders.Add , , "Name", (Me.Width - 3200)
ListView1.View = lvwReport
End Sub
'循环检测进程中是否有指定进程,如果有,关闭,如果没有,启动一个程序
Private Sub Command3_Click()
Dim my As PROCESSENTRY32
Dim l As Long
Dim l1 As Long
Dim flag As Boolean
Dim mName As String
Dim i As Integer
l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then '遍历第一个进程
Do
i = InStr(1, my.szExeFile, Chr(0))
mName = LCase(Left(my.szExeFile, i - 1))
If mName = "winword.exe" Then
PID = my.th32ProcessID
pname = mName
MsgBox "找到word"
If MsgBox("你想删除 " & mName & " 进程?", vbYesNo + vbQuestion) <> vbYes Then
Exit Sub
End If
Dim mProcID As Long
mProcID = OpenProcess(1&, -1&, PID)
TerminateProcess mProcID, 0&
flag = True
Exit Sub
Else
flag = False
End If
Loop Until (Process32Next(l, my) < 1) '遍历所有进程知道返回值为False
End If
l1 = CloseHandle(l)
End If
If flag = False Then
MsgBox "没有找到word"
Shell "c:\Program Files\Microsoft Office\Office\WINWORD.EXE", vbNormalFocus
End If
End Sub
相关推荐
2. 定时关闭进程 3. 定时关机 4. 系统启动时运行 5. 自动加载任务,保存任务,加载任务 6. 调整系统时间 7. 显示系统的所有进程 8. 其它功能: *打开及关闭进程无数量限制 *支持多进程设置不同时间关闭 *...
ForceEnd 是一款简单易用的程序,可显示所有正在运行的进程,强制关闭和重新启动进程,对列表进行排序或更新,手动输入名称查找要终止的进程,快速强制终止一些顽固的进程。 同时使用多个程序时,有时您可能很难...
VC实现系统运行窗口的进程ID、窗口名、窗口类以及MessageBox实现定时自动关闭
其他的可显示当前进程信息的API函数如GetStartupInfo()和GetProcessShutdownParameters() 可给出进程的配置信息。 通常,一个进程需要它的运行期环境的信息。例如API函数GetModuleFileName() 和GetCommandLine() ,...
其他的可显示当前进程信息的API函数还有GetStartupInfo()和GetProcessShutdownParameters() ,可给出进程存活期内的配置详情。 通常,一个进程需要它的运行期环境的信息。例如API函数GetModuleFileName() 和...
提升进程权限,GetCurrentProcess,打开令牌,恢复权限,获取令牌特权,枚举所有进程,隐藏进程,ID取进程,进程取ID,创建进程快照,第一个进程指针,下一个进程指针,关闭进程快照,打开进程,GetProcessMemoryInfo,...
我自己重写的一个Process 进程管理类.你们懂的 提供静态方法获取WinCE机上所有运行进程.打开关闭、指定进程.. 提供方法显示某个进程的进程名称、进程ID、进程数以及进程地址
8、不知道进程关闭窗口:在任务管理器找不到该进程可以使用[不知道进程关闭窗口]进行关闭进程。9、进程加密窗口:进程再打开时都会跳出一个密码输入框输对,密码才能打开。10、系统密码保护:进程再修改系统密码时会...
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。...
本源码是一个计算机进程查看器源码,采用winform进行开发,实现了计算机的进程查看并关闭的功能,可查看本地电脑所有进程信息,并显示当前选取状态下进程的详细内容,包括进程名称、版本、路径、调用的模块等相关...
并根据实际应用需要,增加了进程快照保存、精简进程、进程文件属性查看、快速进入进程所在文件目录、直接复制、删除进程文件、上网搜索进程相关资料、分色显示不同类别进程、指出进程类别、显示进程相关信息,...
本源码是一个计算机进程查看器源码,采用winform进行开发,实现了计算机的进程查看并关闭的功能,可查看本地电脑所有进程信息,并显示当前选取状态下进程的详细内容,包括进程名称、版本、路径、调用的模块等相关...
获得当前计算机系统内某个进程并关闭.详细注释
在ECQ-PS程序窗口中,用户可在“类型”列看到进程的类型,对于一些不明的进程将会以“可疑”类型显示,当确定其为危险程序时,可在其上单击鼠标右键,然后在弹出的菜单中单击“强行结束进程”命令,关闭该程序。...
cAProMan.exe -a 显示所有进程 cAProMan.exe -p 显示端口进程关联关系(需Administrator权限) cAProMan.exe -t [PID] 杀掉指定进程号的进程 cAProMan.exe -f [FileName] 把进程及模块信息存入文件
10、增加进程调用的部分日志显示框,主要是调试方便,日志超过30行自动清屏,未保存,可修改代码关掉或不显示,evertlog目录下多余的日志关掉了,仍然有小部分日志,,如有必要自行在代码中关掉即可。 11、底部增加...
1. 定时打开进程、执行文件等... 2. 定时关闭进程 3. 定时关机 4. 系统启动时运行 5. 自动加载任务,保存任务,加载任务 6. 调整系统时间 7. 显示系统的所有进程 8. 其它功能: *打开及关闭进程无数量限制
此代码示范了如何利用 CreateToolhelp32Snapshot API函数枚举系统当前进程。以及如何用HANDLE OpenProcess(...),TerminateProcess(...)来打开和关闭活动进程。
3 显示进程真实位置 4 8种结束进程方法 5 暂停和恢复进程功能 6 隔离进程 7 删除进程 8 删除并阻止文件再生 9 重启删除功能 10 永久禁止程序运行 11 判断数字签名 12 运行EXE程序 13 搜索句柄和模块 14 自动更新进程...
本源码是一个计算机进程查看器源码,可查看本地电脑所有进程信息,并显示当前选取状态下进程的详细内容,包括进程名称、版本、路径、调用的模块等相关信息。与计算机任务管理器功能相同,但显示的信息较为完善。...