2015-04-04 77 views
0

我一直在尋找解決方案來解決我的問題,但什麼都沒發現。你如何獲得由你設置爲打開的默認程序打開的文件?例如:如果我有一個名爲HelloWorld.hello的文件,並且我設置了該文件,以便在單擊文件時打開一個名爲Hello.exe的程序。我如何獲得啓動Hello.exe的文件?獲取正在啓動的exe文件

+0

你是什麼意思的「正在啓動Hello.exe的文件」?你的意思是問如何獲得已經傳遞給* Hello.exe的文件? – 2015-04-04 23:44:18

+0

我這麼認爲。如何做到這一點? – ProgrammingNoob 2015-04-04 23:46:09

+1

'System.Environment.GetCommandLineArgs()' – Plutonix 2015-04-04 23:50:15

回答

1

問題是調用「執行HelloWorld.exe」需要通過編程到OS中的常用方法 - 根據定義,它是一個OS函數來處理執行請求。因此,你得到的最多的是你的內心深處:「發生了什麼事?」

編輯如果您想要獲取正在執行當前代碼的程序,即應用程序的入口點,則可通過Environment.CommandLine訪問該程序。除非您正在構建一個由多個可執行文件訪問的庫,否則這不是非常有用,如果是,那麼庫應該知道什麼叫它。

如果您有調用函數的控制,你可能要考慮啓動過程中的一些參數傳遞到目標程序 - 這些都可以通過string[]參數Main

編輯在闡述該選項來訪問將信息傳遞到Main,您實際上可以爲您的Main方法提供幾個簽名之一。使用以下:

static void Main(string[] args) 

將採取任何命令行參數,並將其傳遞到args陣列。因此,如果你叫你的程序HelloWorld.exe(在Windows中)作爲

HelloWorld "alpha beta" delta gamma 

然後args將包含["alpha beta", "delta", "gamma"]值。因此,傳遞標誌或啓用命令行參數變得可能

+0

如何將它們傳遞給Main方法中的字符串[]參數? – ProgrammingNoob 2015-04-04 23:51:42

+0

道歉,我會用這個信息更新我的答案! – David 2015-04-04 23:52:00

+0

太棒了!謝謝,我得到了它的工作。 – ProgrammingNoob 2015-04-04 23:57:24