我知道如何在C#中运行外部应用程序System.Diagnostics.Process.Start(executableName);
但是如果我想要运行的应用程序具有Windows无法识别的扩展名作为可执行文件的扩展名。在我的情况下,它是application.bin
。运行没有扩展名为.exe的外部应用程序
15
A
回答
28
关键是要Process.StartInfo.UseShellExecute
属性设置为false
启动过程之前,例如:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\tmp\test.bin";
p.StartInfo.UseShellExecute = false;
p.Start();
这将直接启动过程:而不是通过去了“让我们揣摩的可执行文件指定文件扩展名“的shell逻辑,该文件将被认为是可执行文件本身。
另一种语法来达到相同的结果可能是:
var processStartInfo = new ProcessStartInfo
{
FileName = @"c:\tmp\test.bin",
UseShellExecute = false
};
Process.Start(processStartInfo);
0
要跟踪到MDB的条目:这仅适用于如果你完全限定的文件路径。如果您不必让Windows为文件搜索PATH环境变量,则它会为其搜索的每个文件夹附加一个“.exe”。
不幸的是,这对我正在处理的项目来说很痛苦,因为位置完全依赖于用户文件中设置的PATH。我将不得不手动查找文件并将StartInfo.FileName属性设置为完全限定的路径。
+0
啊......原来有一老一少DOS窍门你可以在你的是:一个时期添加到文件名末尾,Windows将查找文件没有延期。设置StartInfo.FileName =“[appname]”。它会避免在最后添加“.exe”。 – Yelnic 2012-08-21 02:42:58
2
然后从@yelnic继续。尝试使用cmd.exe /C myapp
,我发现它非常有用,当我想从Process.Start()
中获得更多一点时。
using (Process process = Process.Start("cmd.exe")
{
// `cmd` variable can contain your executable without an `exe` extension
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();
}
相关问题
- 1. msi安装后运行exe - 应用程序没有运行?
- 2. 获取除扩展名外没有扩展名的文件名
- 3. 如何在没有扩展名的情况下使用批处理运行exe
- 4. C#运行外部控制台应用程序,并没有ouptut?
- 5. 从Google Chrome扩展程序启动外部应用程序?
- 6. 如何在Mac OSX中运行扩展名为.exe的C#桌面应用程序?
- 7. 调用没有扩展名的.exe文件,但是使用-i
- 8. 如何运行带有.bat脚本的.lnk扩展名的应用程序
- 9. 运行外部代码/应用程序的Android应用程序?
- 10. 有没有办法运行Chrome扩展程序而不点击?
- 11. 扩展外部应用程序的菜单
- 12. 没有扩展名
- 13. 如何运行一个外部.exe文件到您的应用程序中php
- 14. Chrome扩展程序外部网址
- 15. Chrome扩展程序的Chrome浏览器应用程序行为
- 16. 在应用程序中运行.Exe
- 17. 在web应用程序中运行exe
- 18. 如何在linux上运行windows扩展名为.exe的windows可执行文件
- 19. 如何运行用.r扩展名编写的r程序?
- 20. 从Safari扩展访问外部应用程序
- 21. 从Flex/AIR或Java Web应用程序执行外部EXE
- 22. Django扩展现有的应用程序
- 23. 在windows窗体应用程序中运行一个外部exe文件
- 24. 为什么exe没有在程序文件中运行?
- 25. PHP查找扩展没有扩展名
- 26. Chrome扩展突变运行反应应用程序
- 27. MFC - 扩展应用程序从命令行运行
- 28. Flask应用程序部署 - ImportError:没有名为'应用程序'的模块
- 29. 禁用.php扩展名,但运行没有.php的文件作为php文件
- 30. 如何将正在运行的应用程序扩展到PCR?
很好的解释:-) – Chad 2010-08-08 15:35:26