雙擊乙個txt檔案,就能用記事本開啟,因為txt檔案關聯了記事本程式。
想讓你自定義的檔案型別也通過雙擊就能直接呼叫你的程式並開啟?ok,首先我們找到第一期,看到其中的這行**:
registry.setvalue(@"hkey_classes_root\myguo\shell\open\command
", "", "
d:\\bin\\guo.exe \"%1\"
");//
關聯程式
當你雙擊d:\bin\a.guo檔案,就相當於執行了這樣的命令列:
d:\bin\guo.exe 「d:\bin\a.guo」
d:\bin\a.guo就通過命令列引數傳遞給了guo.exe程式。
但是exe程式要怎麼接受到這個命令列引數呢?
在vs中,如果你新建乙個「控制台程式」,在自動建立的program.cs中會有這麼乙個方法
staticvoid main(string args)
其中args就是命令列引數。接上面那個例子,那args[0]就是「d:\bin\a.guo」;
可是,當你建立的是乙個「windows窗體應用程式」時,會發現program中的main是這樣的
staticvoid 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引數。怎麼處理,就看你自己的了。
註冊檔案型別,並關聯程式(二)
registry.setvalue hkey classes root myguo defaulticon d bin guo.ico 怎麼把ico檔案打包 編譯 到exe檔案中,請參看 將多個圖示檔案編譯到c 程式中 假設我們把兩個ico檔案編譯到了guo.exe檔案中,第乙個作為exe的預設圖示...
註冊檔案型別,並關聯程式(一)
在windows上,不同的副檔名會顯示不同的圖示。但是如果你的程式使用了自己定義的一種副檔名 比如.guo windows發現其為 未知型別 時,會顯示乙個預設的未知型別圖示,既不好看又不容易在一堆檔案中快速找到你的檔案。所以,本文將介紹怎麼通過登錄檔來實現更改檔案的預設圖示。以.guo型別為例 副...
註冊檔案型別,關聯檔案
bool function registerfiletype lpctstr houzhui,lpctstr fmiaoshu,lpctstr wmiaoshu,lpctstr filepath hkey hkey null dword dwdip 0 lptstr newreg new tchar...