You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中通过explorer.exe启动外部EXE时如何传递参数?

解决通过explorer.exe启动带参数程序的问题

问题原因

explorer.exe的参数解析逻辑特殊:如果第一个参数是可执行文件路径,它会启动该程序,但无法直接附加后续参数——后续参数会被explorer判定为要打开的文件夹路径,导致启动资源管理器而非带参数的目标程序。

解决方案

借助cmd.exe中转,通过explorer启动普通权限的cmd进程,再由cmd执行带参数的目标程序,既实现降权启动,又能正确传递参数。

C#代码示例:

var p = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "explorer.exe",
        // 引号转义说明:外层引号包裹整个cmd命令,目标程序路径用双引号转义以处理含空格的路径
        Arguments = $"\"cmd.exe /c \"\"{exeFileToRun}\"\" {cmdArgs}\""
    }
};
p.Start();
p.WaitForExit();

补充说明

  • 若目标程序路径包含空格,必须用双引号包裹,避免cmd解析错误
  • 此方法依赖系统自带的cmd.exe,无需额外依赖

内容的提问来源于stack exchange,提问作者dandan21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:43:17