到目前为止,Acrobat Reader已打开PDF。 当我这样做时...
Dim iProcIDPDF As Integer = System.Diagnostics.Process.Start(PATH_TO_PDF_FILE).Id
...一切都很好,我得到了进程ID。
现在,我让Microsoft Edge用相同的代码为我打开PDF,打开了PDF,但是出现错误“ System.NullReferenceException:未将对象设置为任何实例。System.Diagnostics.Process。开始(...)什么都没有返回。”
这也会产生相同的错误:
Dim iProcIDPDF As Integer = System.Diagnostics.Process.Start("microsoft-edge:" & PATH_TO_PDF_FILE).Id
如何获取Edge的进程ID?
谢谢。
答案 0 :(得分:1)
Microsoft Edge的processid
是管理Edge的选项卡的应用程序的processid
,因为每个选项卡都是一个进程,您不会使用Process.Start()获得该值。由于Edge是现代应用程序,因此您将不得不检查如何从HostedApplication获取进程。
如果Internet Explorer是显示PDF的那个,那么您将无法获得显示它的过程,就这么简单(以防万一)。
答案 1 :(得分:0)
有关返回值,请参见System.Diagnostics.Process.Start(String fileName)文档:
与流程资源关联的新流程;如果为null,则为null 没有启动过程资源。
在您的情况下,您将获得一个空返回值(并且由于不对此进行测试并引用了Id属性,因此您收到“对象未设置为任何实例”错误)。由于Edge已经在运行,因此您可能会得到一个空值,因此没有启动新进程。
要检索正在运行的进程的进程ID,您可能需要使用System.Diagnostics.Process.GetProcessesByName。