【问题标题】:Managing .exe files管理 .exe 文件
【发布时间】:2010-11-26 06:42:45
【问题描述】:

在 VB.net 中,如何以编程方式启动 .exe 文件?有没有办法检查文件是否存在?

我知道有一些方法可以使用 System.IO 进行检查,但我不知道。但是,我什至不知道如何启动该 .exe(如果存在),因此感谢您的帮助!

【问题讨论】:

    标签: .net vb.net executable


    【解决方案1】:

    查看System.Diagnostics.Process 课程。 MSDN页面上有完美的代码sn-p,这里就不重复了。

    Process 的巧妙之处在于,您实际上可以启动一个文件(例如,一个 HTML 文件),它会使用用户的默认浏览器打开。许多常见的程序也接受命令行参数 - 许多浏览器接受 URL 作为命令行参数,因此您可以打开特定的 URL。

    【讨论】:

      【解决方案2】:

      http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

      openFileDialog od = new OpenFileDialog(); 字符串路径 = od.ToString() System.Diagnostics.Process.Start(路径)

      【讨论】:

      • 任何带分号的东西绝对不是 vb.net 哈哈,至少在我有限的知识范围内。
      • 我是否应该更改字符串 Dim,而不是字符串路径,而必须将其设为 Integer Dim 路径。我正在用 C# 编程(默认)
      • 即使您确实转换为 VB.net,您在 'od' 的声明中也有错字,并且您实际上并没有在 od 上调用 ShowDialog(),也没有检查它的 DialogResult。对于刚接触 VB.net 的人来说,这可能会产生误导。
      【解决方案3】:

      使用 System.IO.File.Exists 和 System.Diagnostics.Process.Start。

      
              Dim someExe As String = "MyAppsPath\some.exe"
              Dim fullPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), someExe)
              If File.Exists(fullPath) Then    'Checks for the existence of the file
                  Process.Start(fullPath)      'Executes it
              End If
      

      【讨论】:

      • 如何检查 /program files/ 中的 .exe 文件?
      • @Cyclone:在许多情况下,与用户确认某些应用程序所在的位置是个好主意 - 我的 TotalCommander 版本允许我指定我的压缩实用程序在设置窗口中的位置。这样,我保证有正确的路径,否则用户犯了错误,你可以这样通知他们。根据您的需要,这可能有用,也可能没有帮助。最后,如果程序不是您在安装过程中提供的程序,请允许用户指定程序的位置,即使您认为自己知道!
      • 它将启动的程序是我的一个程序,哈哈。我想我也可以扩展它以与其他程序一起使用?
      【解决方案4】:

      您可以使用 System.Diagnostics.Process 执行 .EXE,如果它是控制台/命令行应用程序,甚至可以捕获输出。 你会有这样的东西(但请记住,这被简化了很多!):

      dim process as System.Diagnostics.Process
      process.StartInfo.FileName = "program.exe"   ' You need to be smarter here!
      process.StartInfo.Arguments = "whatever command line options you need"
      process.Start()
      

      要检查程序是否仍在运行,请调用

      process.HasExited()
      

      如果要捕获输出,需要将 StartInfo.RedirectStandardOutput 设置为 True。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-15
        • 2014-11-18
        • 2017-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        相关资源
        最近更新 更多