我可以通过以下方式从我的应用程序中打开 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)
谁能告诉我这两个调用有什么区别?哪个是最佳实践?
最佳答案
在这两个例子中本质上没有区别但是
Process.Start
是首选,因为它为您提供了更多控制流程的选项。您可以使用 ProcessStartInfo 指定更多选项对象作为参数。
Shell
仅返回您必须在运行进程列表中查找的进程 ID,而 Process.Start
返回一个 Process
可用于检查其状态等的对象。
另请注意,Shell
位于 Microsoft.VisualBasic
命名空间中,主要包含用于遗留用途的弃用方法。您应该尽量避免在此处使用任何内容,而应使用另一个命名空间中的替代项。
关于.net - 用于执行外部应用程序的 Shell 与 Process.start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26038052/