| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2011 人关注过本帖
标题:[求助]VB里面有没有结束进程的命令(不用shell)?
只看楼主 加入收藏
rzsy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
 问题点数:0 回复次数:10 
[求助]VB里面有没有结束进程的命令(不用shell)?
Private Sub Command1_Click()
On Error Resume Next
Dim ret As Long
ret = GetTargetProcessID("要结束的进程.exe")
If ret <> 0 Then
ret = CloseTargetProcess(ret)
End If
End Sub
这是从百度找来的,但是有没有 不先获得PID再结束的呢?
如果没有,能不能把这个写成一个过程,以方便使用?谢谢了
搜索更多相关主题的帖子: shell 百度 进程 ret 命令 
2007-04-14 15:26
hanani
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-14
收藏
得分:0 
Call KillProcess("*.exe")
2007-04-14 15:40
hanani
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-14
收藏
得分:0 

看我刚发的一个程序里就用到你说的那一点.可以关了好多进程.

2007-04-14 15:43
rzsy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
得分:0 
以下是引用hanani在2007-4-14 15:40:36的发言:
Call KillProcess("*.exe")
看我刚发的一个程序里就用到你说的那一点.可以关了好多进程.

能不能说详细一点啊?

2007-04-14 19:06
rzsy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
得分:0 
求助

[此贴子已经被作者于2007-4-18 13:17:37编辑过]


2007-04-14 20:36
rzsy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
得分:0 
求助
2007-04-14 21:37
rzsy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-4-11
收藏
得分:0 
求助
2007-04-18 13:02
冷雨纷飞
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-4-18
收藏
得分:0 

路过,看看


Now is future !~
2007-04-18 13:08
hanani
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-14
收藏
得分:0 

Option Explicit
'声明API
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 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 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 Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Private Const TH32CS_SNAPPROCESS = &H2&

'关闭指定名称的进程
Private Sub KillProcess(sProcess As String)
Dim lSnapShot As Long
Dim lNextProcess As Long
Dim tPE As PROCESSENTRY32
lSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
If lSnapShot <> -1 Then
tPE.dwSize = Len(tPE)
lNextProcess = Process32First(lSnapShot, tPE)
Do While lNextProcess
If LCase$(sProcess) = LCase$(Left(tPE.szExeFile, InStr(1, tPE.szExeFile, Chr(0)) - 1)) Then
Dim lProcess As Long
Dim lExitCode As Long
lProcess = OpenProcess(1, False, tPE.th32ProcessID)
TerminateProcess lProcess, lExitCode
CloseHandle lProcess
End If
lNextProcess = Process32Next(lSnapShot, tPE)
Loop
CloseHandle (lSnapShot)
End If
End Sub

2007-04-18 19:28
hanani
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-14
收藏
得分:0 

你试下这个,

2007-04-18 19:29
快速回复:[求助]VB里面有没有结束进程的命令(不用shell)?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031115 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved