vb 文件"cli.exe"已经运行,它有若干个窗口,如何通过程序关闭它

myredit 2006-02-13 04:22:17
vb 文件"cli.exe"已经运行,它有若干个窗口,主窗口名为"aaa",如何通过程序关闭它
谢谢
...全文
107 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2006-02-13
  • 打赏
  • 举报
回复
另一个思路是获得窗口的句柄后,先调用GetWindowThreadProcessId获得pid,然后通过OpenProcess获得对应的进程句柄,最后调用ExitProcess或TerminateProcess之类的函数,终止窗口对应的进程
迈克揉索芙特 2006-02-13
  • 打赏
  • 举报
回复
Option Explicit

Declare Function EnumWindows Lib "user32" (ByVal wndenmprc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_CLOSE = &H10

Private Target As String

Private Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long
Dim buf As String * 256
Dim title As String
Dim length As Long

length = GetWindowText(app_hWnd, buf, Len(buf))
title = Left$(buf, length)

' Debug.Print title
If InStr(LCase(title), LCase(Target)) <> 0 Then
SendMessage app_hWnd, WM_CLOSE, 0, 0
End If

EnumCallback = 1
End Function

Public Sub TerminateTask(app_name As String)
Target = app_name
EnumWindows AddressOf EnumCallback, 0
End Sub

1,488

社区成员

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

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