Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Process API未返回ms word进程的所有实例_.net_Vb.net_Process - Fatal编程技术网

.net Process API未返回ms word进程的所有实例

.net Process API未返回ms word进程的所有实例,.net,vb.net,process,.net,Vb.net,Process,我正在检查word进程实例,我打开了多个word实例实例,但它只返回word和返回进程的第一个实例。计数1,当我使用记事本作为进程时,它可以工作,但对于winword它不工作 For Each a In p If Not pName.Equals("") And I <= p.Count Then Console.WriteLine(a) Console.WriteLine(p.Count) pName = p(I).MainWind

我正在检查word进程实例,我打开了多个word实例实例,但它只返回word和返回进程的第一个实例。计数1,当我使用记事本作为进程时,它可以工作,但对于winword它不工作

For Each a In p
    If Not pName.Equals("") And I <= p.Count Then
        Console.WriteLine(a)
        Console.WriteLine(p.Count)
        pName = p(I).MainWindowTitle.ToString
        File.WriteLine("Word Process Name : {0} is started on time {1}", pName, p(I).StartTime)
        fullPath = Path.GetFullPath(pName)
        File.WriteLine("Path Of the file is  : {0}", fullPath(0))
    End If
Next

我已经用Word.Application API解决了这个问题,您可以从参考添加中添加它

Dim wordApp As Microsoft.Office.Interop.Word.Application
wordApp = Marshal.GetActiveObject("Word.Application")
For Each f In wordApp.Documents
          pName = Path.GetFileName(f.FullName).ToString()
           pPath = f.Path.ToString()
           File.WriteLine("Word Process Name : {0}  ", pName)
           File.WriteLine("File Path is: {0} ", pPath)
           File.WriteLine("File Starting Time is {0}", pTime)                                
Next

您发布的代码似乎列出了磁盘上的文件。是否要查看当前正在运行的word进程?看看这个供参考的窗口和进程不是一回事。Word可以而且通常在同一进程中运行多个文档窗口。您打开的Word实例不超过1个。您可以在任务管理器的“流程”选项卡中看到。Word是一个单实例程序,它太大了。因此,再次启动它只会让第二个实例请求第一个实例打开文档。我已经打开了不止一个Word实例,正如Hans所说,如果你运行Word两次,第二个实例只会将信息传递给第一个实例,告诉它打开一个新窗口,然后退出。您将看到两个窗口,但只有一个winword进程。记事本不能这样做。唯一的例外是,如果您正在运行两个不同版本的Word,但到目前为止您还没有建议您这样做。