我有一个问题,我在一个网络中,每个人都通过msg发送消息。通过这确实很烦人,我想到了终止消息框的过程。在csrss.exe下运行,这是不可能的。当我浏览任务管理器时,我注意到,打开csrss.exe的树形结构时,有一个消息框,我可以杀死它。有谁知道如何在Visual Basic中做到这一点。
答案 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嘿,怎么了
获取消息
这是任务
代码所见
在p.CloseMainWindow()
调用后关闭。由于它不仅限于一个窗口,它还将关闭与描述匹配的任何其他窗口。这应该满足您的要求。