Process.Start 没有“.exe”扩展名失败

Process.Start fails without ".exe" extension

我正在尝试 运行 没有扩展名“.exe”的可执行文件,当我试图 运行 我的“.bin”文件(实际上是 .exe 但我重命名了它使用 .bin 以防止混淆)它向我展示了程序选择器 windows.

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

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

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

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

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

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

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