杀死其他应用程序窗口

时间:2019-11-12 18:33:44

标签: vb.net windows-server

我有一个问题,我在一个网络中,每个人都通过msg发送消息。通过这确实很烦人,我想到了终止消息框的过程。在csrss.exe下运行,这是不可能的。当我浏览任务管理器时,我注意到,打开csrss.exe的树形结构时,有一个消息框,我可以杀死它。有谁知道如何在Visual Basic中做到这一点。

1 个答案:

答案 0 :(得分:1)

一个简单的网络搜索将我带到this question,已经有了一些不错的答案。

做了一些工作,我想出了这个解决方案。它按名称( csrss )找到该进程,然后按窗口标题(来自的消息)进行过滤。

Sub Main()
    killProcesses("csrss", "Message from")
End Sub

Private Sub killProcesses(processName As String, mainWindowTitle As String)
    Dim processes = Process.GetProcesses().
        Where(Function(p) p.ProcessName.Contains(processName)).
        Where(Function(p) p.MainWindowTitle.Contains(mainWindowTitle))
    '  (Where clauses can be combined into one of course)
    For Each p In processes
        p.CloseMainWindow()
    Next
End Sub

它像这样工作。发送消息

  

C:\ Users \ djv> msg djv嘿,怎么了

获取消息

enter image description here

这是任务

enter image description here

代码所见

enter image description here

p.CloseMainWindow()调用后关闭。由于它不仅限于一个窗口,它还将关闭与描述匹配的任何其他窗口。这应该满足您的要求。