当前位置: 首页 > 编程语言 > C#

不带.exe扩展名运行外部应用程序分享

时间:2023-04-10 16:45:58 C#

不带.exe扩展名运行外部应用程序我知道如何在C#中运行外部应用程序System.Diagnostics.Process.Start(executableName);系统.Diagnostics.Process.Start(executableName);但是,如果我要运行的应用程序具有Windows无法识别为可执行文件扩展名的扩展名。在我的例子中,它是application.bin。关键是在启动进程之前将Process.StartInfo.UseShellExecute属性设置为false,例如:System.Diagnostics.Processp=newSystem.Diagnostics.Process();p.StartInfo.FileName=@"c:tmptest.bin";p.StartInfo.UseShellExecute=false;p.开始();这将直接启动进程:文件将被视为可执行文件,而不是通过“让我们尝试找出指定文件扩展名是哪个文件扩展名”的shell逻辑。实现相同结果的另一种语法可能是:varprocessStartInfo=newProcessStartInfo{FileName=@"c:tmptest.bin",UseShellExecute=false};Process.Start(processStartInfo);并从@yelnic继续。尝试cmd.exe/Cmyapp,当我想要更多Process.Start()时,我发现它非常有用。using(Processprocess=Process.Start("cmd.exe"){//`cmd`变量可以包含没有`exe`扩展名的可执行文件process.Arguments=String.Format("/C"{0}{1}"",cmd,String.Join("",args));process.UseShellExecute=false;process.RedirectStandardOutput=true;process.Start();process.WaitForExit();output=process.StandardOutput.ReadToEnd();遵循mdb的条目:这仅在完全限定文件路径时才有效。如果将其保留为允许Windows搜索文件的PATH环境变量,它将附加“.exe”。不幸的是,这是一个我正在做的项目很痛苦,因为位置完全依赖于用户文件中设置的PATH。我必须手动找到文件并将StartInfo.FileName属性设置为完全限定路径以上是所有分享的内容byC#学习教程:运行不带.exe扩展名的外部应用程序站,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: