我正在搜索一个按标题关闭特定窗口的方法.
我试过了Process.GetProcessesByName; 但不是特别适用于这种情况.
我正在使用API或类似方法搜索方法(不在C#中,我看到几个代码但在vb.net中工作不正常)
谢谢!
UPDATE
谢谢回复.但是我在下面描述的解决方案仍然存在问题.我有一个控制两个窗口的唯一进程.然后,如果我关闭(或杀死)Window#2,立即关闭第一个(见图像).
由于这个原因,我认为从使用API方法乞讨.
我只想关闭第二个窗口.

尝试使用这样的东西.使用Process.MainWindowTitle获取标题文本并Process.CloseMainWindow关闭UI,它比杀死进程更优雅.
注意:包含区分大小写的搜索
Imports System.Diagnostics
Module Module1
Sub Main()
Dim myProcesses() As Process = Process.GetProcesses
For Each p As Process In myProcesses
If p.MainWindowTitle.Contains("Notepad") Then
p.CloseMainWindow()
End If
Next
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
至于Win API函数尝试这样的东西.请注意,如果关闭父窗口,您也将关闭子窗口.
Module Module1
Private Declare Auto Function FindWindowEx Lib "user32" (ByVal parentHandle As Integer, _
ByVal childAfter As Integer, _
ByVal lclassName As String, _
ByVal windowTitle As String) As Integer
Private Declare Auto Function PostMessage Lib "user32" (ByVal hwnd As Integer, _
ByVal message As UInteger, _
ByVal wParam As Integer, _
ByVal lParam As Integer) As Boolean
Dim WM_QUIT As UInteger = &H12
Dim WM_CLOSE As UInteger = &H10
Sub Main()
Dim handle As Integer = FindWindowEx(0, 0, Nothing, "YourFormsTitle")
PostMessage(handle, WM_CLOSE, 0, 0)
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13547 次 |
| 最近记录: |