我知道如何在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