2012-07-24 25 views
2

好吧,我真的把我的頭髮拉出來,並嘗試了幾個關於如何調試的問題,比如如何調試,但我沒有太多迄今爲止的運氣。基本上,我的應用程序出現了,用戶做了一些事情。在某些時候,用戶可以將它們的設置保存到擴展名爲.abc的輸出文件(以原始文本格式)。此擴展程序已註冊並可由應用程序編輯。因此,用戶雙擊文件,它將應用程序調出到主窗體視圖。這一切工作正常和丹迪。如果我在記事本中查看.abc文件,我可以看到我保存的所有設置。我的問題是,如何讓應用程序讀取多行文本,並知道程序是從文件中輸入的,而不是從程序中選擇運行它?舉例來說,當他們保存他們的設置,它可能看起來像這樣在記事本中:用自定義擴展名創建文件,點擊後可打開應用程序

firstname=john 
lastname=hancock 
address=1234 somewhere road, atlanta, GA 12345 

當用戶雙擊該文件即可啓動該程序,我想知道有一些啓動參數的形式,和填寫表格上的相應內容。所以也許這個表單會顯示「你好約翰漢考克,歡迎回來」或其他性質。這有可能嗎?我可以讓應用程序強制你選擇file-> open並以這種方式讀取文本文件,但首選的方法是一舉成功。

謝謝!

+1

您可以檢查文件是否作爲命令行參數傳遞給您的程序。 HTTP://計算器。com/questions/605428/how-can-i-make-an-application-open-when-a-user-double-click-on-its-associated -f?rq = 1 – 2012-07-24 19:55:06

+2

''一次失敗'' – 2012-07-24 19:59:35

回答

2

要點擊其中一個擴展名時運行程序,請使用Windows註冊表。如果創建安裝項目,Registring擴展(它們的圖標和程序)可以自動完成。看看herehere

@Sam I am的回答一樣,當程序運行時收到你的參數指定如何處理文件。

+0

我嘗試使用命令行參數傳入靜態無效Main(字符串[]參數),但似乎沒有任何參數。我錯過了什麼嗎?我已經完成了註冊擴展的部分,只需要將文件路徑傳遞到應用程序中,以便我可以用它做一些事情...... – user1420914 2012-07-24 20:25:18

+0

@ user1420914您可能沒有以正確的方式傳遞參數。 '啓動C:\ myapp.exe C:\ arg1.txt'。 (即一般語法是'開始PROGRAMPATH ARGS')。如果你有多個參數,用空格分隔它們 – 2012-07-24 20:29:14

+0

在這種情況下,文件名是test.epc(epc是我註冊的擴展名)。我只需雙擊該文件,即可啓動我的應用程序。我不確定幕後會發生什麼。雙擊文件會傳遞什麼? – user1420914 2012-07-24 20:32:33

2

當您啓動該程序時,該文件的文件名用於啓動它是

args[0] 

在你的主要方法。

你可以做的是你可以檢查以確保args.Length > 0然後用你選擇的任何文件解析方法加載任何名字在args[0]的文件。

1

尤里卡!我終於找到了(a)答案,至少在我的環境中。我正在使用Visual Studio 2010快速版,並將文件與擴展名關聯,以便雙擊它時啓動該應用程序。爲了獲得該文件的路徑,它不是作爲參數存儲,而是存儲在appdomain屬性中。如果你這樣做的命令:

String test = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; 

變量測試結束這樣看:

「C:\ DIR/DIR2/DIR3/test.abc」

從那裏,我可以讀該文件並獲取內容,或其他任何我想要做的事情。

我特別想感謝Desolator。根據他的意見,我能夠更好地使用正確的關鍵字搜索互聯網,最終找到答案!

快樂編碼!

相關問題