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

但是,如果我用 2 个 Word 实例运行程序,它只显示 1。这可能是由于 Windows 8/7 处理实例的方式吗?在任务管理器中,我看到了进程(Microsoft Word(32 位)(2)),这对我来说意味着 2 个 word 实例是打开的,对吧?!?!

那么我的代码有什么问题?如果您的示例是在 C# 中,这很好!

4

2 回答 2

1

感谢 Denis,下面的代码与其他进程一起工作,以查看打开了多少个程序实例,但似乎 Window 的 8 只打开了一个 WinWord 进程并将其置于一个 PID 下,即使您打开了多个实例。

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
于 2013-10-02T19:23:15.880 回答
-1

如果您将“WINWORD”更改为“WinWord”,可能会对您有所帮助。尝试完全匹配 .GetProcessByName 中的进程名称。除此之外,Windows 可能只在 .count 调用中返回一个实例。在这种情况下,您可以获取程序名称的实例,并将其分配给您自己的计数(变量)以获得所需的结果。

于 2013-10-02T17:31:53.107 回答