雙擊一個txt文件,就能用記事本打開,因為txt文件關聯了記事本程序。
想讓你自定義的文件類型也通過雙擊就能直接調用你的程序並打開?OK,首先我們找到第一期,看到其中的這行代碼:
Registry.SetValue(, , );
當你雙擊D:\bin\a.guo文件,就相當於執行了這樣的命令行:
D:\bin\Guo.exe “D:\bin\a.guo”
D:\bin\a.guo就通過命令行參數傳遞給了Guo.exe程序。
但是exe程序要怎麼接受到這個命令行參數呢?
在VS中,如果你新建一個“控制台程序”,在自動創建的Program.cs中會有這麼一個方法
Main([] args)
其中args就是命令行參數。接上面那個例子,那args[0]就是“D:\bin\a.guo”;
可是,當你創建的是一個“Windows窗體應用程序”時,會發現Program中的Main是這樣的
Main()
args不見了!不要急,把Main()改成Main (string[] args)就行了。
另外,args在這裡是不會為null的,如果沒有任何參數,這時候是args.Length==0;
有的時候,我們的程序對命令行參數是有格式限制的,比如有可能是這個樣子來表示輸入文件的:
D:\bin\Guo.exe –i “D:\bin\a.guo”
這種以“鍵值對”作為參數的方式在實際中十分普遍,因為這樣子不用限制參數的順序,也方便記憶;對於這樣的形式,你只需要把上面command的內容改為"D:\\bin\\Guo.exe –i \"%1\""即可;
不過這種方式有兩種情況需要注意:拖動文件到Guo.exe文件上釋放、在“打開方式”中選擇使用Guo.exe文件打開;
這兩種情況,Windows都會執行以下命令行來打開exe:
D:\bin\Guo.exe “文件路徑”
不會有-i參數。怎麼處理,就看你自己的了。