现在我有以下代码,应该显示在加载事件
上打开的实例数Class MainWindow
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Dim processCount As Integer = Process.GetProcessesByName("WinWord").Count()
MessageBox.Show(String.Format("{0} Instances Running", processCount.ToString()))
End Sub
End Class
但是,如果我运行带有2个Word实例的程序,它只显示1.这可能是由于Windows 8/7如何处理实例?在任务管理器中我看到了进程(Microsoft Word(32位)(2)),对我来说这意味着2个单词的实例是开放的,对吧?!?!
我的代码出了什么问题?如果您的示例是在C#中,这很好!
答案 0 :(得分:1)
感谢Denis,下面的代码与其他进程一起工作,看看有多少个程序实例是打开的,但是看起来Window 8只打开一个WinWord进程并将它放在一个PID下,即使你打开多于1个实例
Class MainWindow
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Dim processCount As Integer = Process.GetProcessesByName("WinWord").Count()
MessageBox.Show(String.Format("{0} Instances Running", processCount.ToString()))
End Sub
End Class
答案 1 :(得分:-1)
如果你改变" WINWORD"到" WinWord"这可能会帮助你。尝试完全匹配.GetProcessByName中的进程名称。除此之外,Windows可能只返回.count调用上的一个实例。在这种情况下,您可以获取程序名称的实例,并将其分配给您自己的计数(变量)以获得所需的结果。