2011-01-05 32 views
10

發佈之前,我去了項目 - >屬性 - >選項 - >文件關聯,並添加了擴展名「.hsp」。設置一個圖標和一個ProgID(「MyCompany.Document.1」用於測試)。在我發佈和安裝後,我的.hsp文件具有我設置的圖標,因此應該正確設置文件關聯,但是當我雙擊其中一個文件時,應用程序將運行,我期望雙擊的文件的名稱是在命令行中。我嘗試讀取傳遞給我的Main函數的參數,嘗試Environment.CommandLine,並嘗試Environment.GetCommandLineArgs(),但我唯一發現的是應用程序路徑。順便說一句,我在做函數創建我的主窗體之前做了所有這些檢查,只是爲了測試。 args參數爲空,另外兩個只包含我的應用程序路徑。如何從ClickOnce應用程序獲取命令行?

這是我Main函數的開頭:

static void Main(string[] args) 
    { 
     try 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); 
      MessageBox.Show("CommandLine -> " + Environment.CommandLine); 
      foreach (string str in args) MessageBox.Show("args -> " + str); 
      foreach (string str in Environment.GetCommandLineArgs()) MessageBox.Show("GetCommandLineArgs -> " + str); 

回答

9

當您發佈使用ClickOnce應用程序,然後通過雙擊關聯的文件,路徑啓動它該文件實際上被存儲在這裏:

AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0] 

查看MSDN的文檔在這裏:

http://msdn.microsoft.com/en-us/library/system.runtime.hosting.activationarguments.aspx

加上添加文件關聯的教程,以「已發佈」項目:

http://blogs.msdn.com/b/mwade/archive/2008/01/30/how-to-add-file-associations-to-a-clickonce-application.aspx

+0

太謝謝你了! – pr0gg3r 2013-08-29 15:01:16

相關問題