【问题标题】:Process.Start fails without ".exe" extensionProcess.Start 在没有“.exe”扩展名的情况下失败
【发布时间】:2015-03-15 00:48:05
【问题描述】:

当我试图运行我的“.bin”文件时,我试图运行一个没有“.exe”扩展名的可执行文件(实际上它是 .exe,但我用 .bin 重命名了它以防止混淆)它显示给我程序选择器窗口。

我怎样才能避免这种情况?

    If File.Exists("client.bin") Then
        Process.Start("client.bin", param)
        delay(100)
        Terminate()
    Else
        MsgBox(Lang(6), MsgBoxStyle.Critical, TITLE)
        Terminate()
    End If

【问题讨论】:

  • Windows 无法运行 BIN 文件。在许多情况下,您会启动一个辅助应用程序,例如 DVD 刻录机,认为文件是图像文件。将其保留为 EXE,否则您会混淆 Windows

标签: vb.net process.start


【解决方案1】:

您的代码本质上是要求操作系统的运行时处理文件。它使用文件扩展名来确定它应该做什么。例如,.doc 扩展将使用 Word 打开(最终进程处理程序会将文件路径作为参数传递给目标应用程序:winword.exe {filepath}.doc)。

Windows 不知道如何处理 .bin 文件,因此它会向您寻求帮助 - 因此会出现程序选择器提示。

您只能执行一个可执行文件,只需将文件扩展名改回.exe

你想避免什么混乱?例如,如果您试图阻止用户意外运行应用程序,您就不能将其移到其他可能更难找到的地方吗?

如果你真的想给它起别的名字(这真的,真的很乱),你可以在运行它之前和之后重命名文件。但是,我会强烈建议你不要这样做,这是非常糟糕的设计!

【讨论】:

  • 谢谢,我想我明白了。
猜你喜欢
  • 2021-04-29
  • 1970-01-01
  • 2018-05-25
  • 2014-12-07
  • 2014-03-03
  • 2014-05-05
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多