考虑以下代码,它只是从VB.NET启动一个进程:
Public Shared Sub ShellandWait(ProcessPath As String, Optional Arguments As String = "")
'Starts a process/program and waits for it to finish before execution continues.
Using objProcess As New System.Diagnostics.Process
objProcess.StartInfo.FileName = ProcessPath
objProcess.StartInfo.Arguments = Arguments
objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
objProcess.StartInfo.ErrorDialog = False
objProcess.Start()
'Wait until the process passes back an exit code
objProcess.WaitForExit()
'Free resources associated with this process
objProcess.Close()
End Using
End Sub
如果我们传入ProcessPath的文件名,说“C:\ test.xml”,但没有程序与.xml扩展名相关联,Windows 10会弹出一个框,询问“你想怎么打开这个文件?“
无论如何阻止Windows打开此弹出窗口?我希望这个场景可以在代码中处理而不是Windows插入本身。
编辑:我不想找到与扩展程序相关联的程序。在Process.Start失败的大多数情况下,将没有可用于处理文件类型的程序(我只使用xml作为示例)。我的代码目前警告用户没有找到相应的应用程序,但Windows的弹出窗口也显示,我觉得这很混乱。我只想禁用弹出窗口,如果可能的话。