永发信息网

VB关于处理进程的问题

答案:2  悬赏:0  手机版
解决时间 2021-08-01 12:33

用Shell函数打开一个新程序,获得的那个taskID是不是就是进程的PID?

如果是。用什么API可以kill掉那个进程?

最佳答案

得到的是PID


可以用API干掉,但是太麻烦了


只要用任务管理器就行了,代码如下


Private Sub Form_Load()
Dim S As String
Dim PID As Long
S = "notepad.exe"
PID = Shell(S, vbNormalFocus)
MsgBox "已经打开了记事本,你看到了吗? 单击确定关闭记事本"
Shell "cmd /c taskkill /F /PID " & PID, vbHide
End
End Sub

全部回答

那我就补充一个API的吧,反正差不多

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Const PROCESS_TERMINATE = &H1 ''用于结束外部进程,hCloseWnd 是要结束的程序的主窗口的 HWND Public Function TernamiteProcessByPID(ByVal PID As Long) As Boolean Dim hProcessID As Long Dim hProcess As Long On Error GoTo PROC_EXIT hProcess = OpenProcess(PROCESS_TERMINATE, False, PID) If hProcess = 0 Then GoTo PROC_EXIT If TerminateProcess(hProcess, 0&) = 0 Then GoTo PROC_EXIT TernamiteProcessByPID = True PROC_EXIT: If Err.Number <> 0 Then Debug.Print Err.Description Err.Clear End If End Function

Private Sub Form_Load() Dim S As String Dim PID As Long S = "notepad.exe" PID = Shell(S, vbNormalFocus) MsgBox "已经打开了记事本,你看到了吗? 单击确定关闭记事本" Dim T As Boolean T = TernamiteProcessByPID(PID) If T Then MsgBox "关闭成功" Else MsgBox "关闭失败" End Sub

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公安县荆州莫干山板材多乐士漆怎么去啊,谁知
pp材质的塑料瓶可以用来长期盛酒吗,
道家和佛门谁更厉害
泌阳县驻马店金谷精米商行这个地址在什么地方
不小心说出的分手,再去挽回的爱情会变质吗?
谁知道怎样赚钱来的快?????
湖南行星球磨机买天创粉末怎么样?
武昌区武汉爱尔康大药房(站前分店)这个地址在
医学生论文该如何写啊,题目怎么定啊?呜呜呜
帮明年出生的虎宝宝起个好听的乳名
男士脸上豆豆留下的斑和小红点用什么去除呢?
陷入爱情里,该怎么自拔?
怎样才能做好物理概念题
老师进快啊
湘乡市湘潭老百姓大药房(潭市店)这个地址在什
推荐资讯
黄石港区黄石佰特桌球俱乐部在哪里啊,我有事
功夫派初级武士
成都茶楼包厢设计?
在阜沙的工商银行可以换港币不呀
大明龙权图标是自动亮吗
如果武艺被淘汰的话会不会被天娱传媒签了呢?
我的孩子八个半月了,最近我发现她头顶一圈新
无懈可击之美女如云,无懈可击之美女如云哪里
吓到了不敢一个人睡 干嘛能忘掉恐怖呢
为什么我的 好友面板上下很窄 好像是我上下拖
如何提高英语口语能力?
什么是爱情…?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?