Shell Vs Process.start用于执行外部应用程序

时间:2014-09-25 11:57:07

标签: .net vb.net windows shell process

我可以通过以下方式从我的应用程序中打开Windows计算器:

  • 使用Shell()

    Shell("C:\WINDOWS\system32\calc.exe") 
    
  • 使用Process.start()

    Process.start("C:\WINDOWS\system32\calc.exe")  
    
  • 打开记事本应用程序

    Shell("C:\WINDOWS\system32\notepad.exe", AppWinStyle.NormalFocus)  
    Process.start("C:\WINDOWS\system32\notepad.exe", AppWinStyle.NormalFocus)
    

有谁能告诉我这两个电话有什么区别?哪一个是最佳实践?

1 个答案:

答案 0 :(得分:3)

在这两个例子中,基本上没有区别,但

Process.Start是首选,因为它为您提供了更多控制流程的选项。您可以使用ProcessStartInfo对象作为参数指定更多选项。

Shell仅返回您必须在正在运行的进程列表中查找的进程ID,而Process.Start返回一个Process对象,您可以使用该对象检查其状态等

另请注意,Shell位于Microsoft.VisualBasic命名空间中,其中 主要包含已弃用的旧方法。你应该尽量避免在这里使用任何东西来支持另一个名称空间中的替代。