如何用程序控制杀掉指定的进程

flaw 2000-01-20 10:35:00
有时会遇到程序不正常退出,但关闭程序窗口(alt-ctrl-del)中仍然包含一些进程,例如Lotus Notes,如何通过编程实现自动杀掉指定的进程,包括可以自动识别和处理那些失去响应的进程。
...全文
200 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
upstream 2000-01-20
  • 打赏
  • 举报
回复
获得应用程序的HINSTANCE 或程序的HANDLE然后用GETPROCESSEXITCODE获得
退出码,然后TERMINATEPROCESS(EXITCODE)终止进程。
peacock 2000-01-20
  • 打赏
  • 举报
回复
可以通过调用Windows API函数FindWindow和PostMessage的办法,找出相应
的软件句柄,并通知Windows 95关闭该软件。以下是一个关闭Windows 95附件
中的小软件“计算器”的例子。
具体步骤如下:
1) 在VB中新建一个标准EXE工程;
2) 画出一个按钮Command1;
3) 在窗体Form1中定义Windows API的声明;
Const WM_CLOSE = &H10
Private Declare Function FindWindow Lib "user32" Alias
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName
As String) As Long
Private Declare Function PostMessage Lib "user32" Alias
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal
wParam As Long, lParam As Any) As Long
4) 在Command1的Click事件中编写以下代码:
Private Sub Command1_Click()
Dim winHwnd As Long
Dim RetVal As Long
winHwnd = FindWindow(vbNullString, "计算器")
Debug.Print winHwnd
If winHwnd <> 0 Then
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
If RetVal = 0 Then
MsgBox "关闭计算器出错!"
End If
Else
MsgBox "计算器没有运行。"
End If
End Sub
fyc 2000-01-20
  • 打赏
  • 举报
回复
1,CreateToolhelp32Snapshot取得进程列表
2,Process32Next取得进程id
3,OpenProcess取得进程handle
4,TerminateProcess
5,OK

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧