註冊檔案型別,並關聯程式(三)

2022-03-28 13:37:59 字數 1180 閱讀 3292

雙擊乙個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中會有這麼乙個方法

static

void main(string args)

其中args就是命令列引數。接上面那個例子,那args[0]就是「d:\bin\a.guo」;

可是,當你建立的是乙個「windows窗體應用程式」時,會發現program中的main是這樣的

static

void 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...