2010-04-05 48 views
1

第一:如果我的英語不太好,我是荷蘭人。visual c#打開自己的文件擴展

我做了我自己的文件類型(.ddd),並且我做了一個簡單的程序來打開這個文件類型,但是我點擊.ddd文件(在我的桌面上)我的程序只打開文件不是自動的在我的程序裏面打開。

如何在我的程序打開時直接打開文件?

+0

@Kevin:這可能是因爲他的節目缺乏正確的代碼。 – 2010-04-05 20:11:50

+0

@Kevin這是編程相關的,他需要知道如何將它集成到他的安裝程序中。 – 2010-04-05 20:36:57

回答

0

我slitly改變了查爾斯·M的發佈 並能正常工作:

string[] args = Environment.GetCommandLineArgs(); 
string fileToOpen = ""; 
if (args.Count() == 2) 
{ 
    fileToOpen = args[1]; 
} 

感謝您的建議, Ecross

+0

args.Count()需要使用System.Linq;我推薦使用args.Length。 – 2010-04-07 16:03:18

1

windows shell將文件名作爲命令行參數傳遞給您的程序。你的程序需要讀取它的命令行參數並打開那裏指定的文件。

+0

僅當他使用拖放操作或者他的程序已註冊才能處理該文件類型時。我想他想在安裝時知道如何做後者。 – 2010-04-05 20:38:03

+0

但問題是,當他雙擊文件時,他的程序運行。這不意味着文件類型關聯已經完成了,剩下的就是從命令行抓取文件名嗎? – 2010-04-05 20:49:55

+0

carson Myers是正確的 – ecross 2010-04-07 15:05:10

1

您是否在您的Main()中包含代碼以讀取命令行參數?例如

static void Main(string[] args) 
{ 
    string fileToOpen = ""; 
    if (args.Length == 1)  
     fileToOpen = args[0]; 

    ... 
} 

如果你這樣做了,那麼我想你沒有正確註冊的程序打開這種文件類型。右鍵單擊任何.ddd文件,選擇「屬性」,並在其中顯示「打開方式:」確保顯示您的程序。如果不是,請單擊更改並瀏覽至您的程序。

+0

只有當他的程序被註冊來處理該文件類型。我想他想知道如何在安裝的時候這樣做 – 2010-04-05 20:38:42

+0

我在args.Count == 1下得到一個紅色虛線,下一個錯誤: 運算符'=='不能應用於'method group'類型的操作數和'int' – ecross 2010-04-07 15:04:49

+0

@ecross:對不起,應該是args.Length。 – 2010-04-07 15:58:07