2011-04-04 56 views
9

許多程序都在「默認程序」控制面板小程序下列出了可能的擴展名和協議列表。 「更精確地設置默認的PRogram」。 (Vista & 7)
我希望將我的程序添加到該列表中並設置它可以處理的一些擴展。如何將我的應用程序添加到Windows Vista/7的默認程序列表中?

還有一件事。我的程序支持用於打開更多文件的插件,因此列表應該是動態的(我可以隨時添加更多擴展或甚至協議)

順便說一句,是的,我知道,這不完全是編程問題。這是我的簡單猜測,這是一個註冊表問題。所以UAC不會是一個問題!

回答

0

Your'e將這樣做作爲您的應用程序的安裝過程的一部分。如果您使用的是WIX,則可以在this question中配置以下答案:

如果您確實想通過代碼執行此操作,請查看following article。它使用VB.Net編寫,但代碼相當簡單,可以輕鬆轉換爲C#。

+0

我知道如何關聯文件。我不知道如何讓Windows知道我的程序可以使用哪些文件。 – Vercas 2011-04-04 18:03:57

3

OK,經過艱苦的工作和半小時長的註冊表搜索後,我發現我必須註冊我的應用程序功能,然後註冊我的應用程序。

對於其他人,分析價值在這個關鍵:

HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications 
2

這裏是一個我主要使用視頻文件與Media Player Classic(Gabest)在Windows 7中關聯:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic (Gabest)] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic (Gabest)\Capabilities] 
"ApplicationDescription"="One of the most powerful, configurable multimedia players for Windows operating system, made by a Hungarian developer known as Gabest." 
"ApplicationIcon"="C:\\Program Files\\mplayerc.exe,0" 
"ApplicationName"="Media Player Classic (Gabest)" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic (Gabest)\Capabilities\FileAssociations] 
".avi"="mpc.avi" 
".mpg"="mpc.mpg" 
".mpeg"="mpc.mpeg" 
".mpe"="mpc.mpe" 
".m1v"="mpc.m1v" 
".m2v"="mpc.m2v" 
".mpv2"="mpc.mpv2" 
".mp2v"="mpc.mp2v" 
".pva"="mpc.pva" 
".evo"="mpc.evo" 
".m2p"="mpc.m2p" 
".ts"="mpc.ts" 
".tp"="mpc.tp" 
".trp"="mpc.trp" 
".m2t"="mpc.m2t" 
".m2ts"="mpc.m2ts" 
".mts"="mpc.mts" 
".rec"="mpc.rec" 
".vob"="mpc.vob" 
".ifo"="mpc.ifo" 
".mkv"="mpc.mkv" 
".webm"="mpc.webm" 
".mp4"="mpc.mp4" 
".m4v"="mpc.m4v" 
".mp4v"="mpc.mp4v" 
".mpv4"="mpc.mpv4" 
".hdmov"="mpc.hdmov" 
".mov"="mpc.mov" 
".3gp"="mpc.3gp" 
".3gpp"="mpc.3gpp" 
".3ga"="mpc.3ga" 
".3g2"="mpc.3g2" 
".3gp2"="mpc.3gp2" 
".flv"="mpc.flv" 
".f4v"="mpc.f4v" 
".ogm"="mpc.ogm" 
".ogv"="mpc.ogv" 
".rm"="mpc.rm" 
".ram"="mpc.ram" 
".rmm"="mpc.rmm" 
".rt"="mpc.rt" 
".rp"="mpc.rp" 
".smi"="mpc.smi" 
".smil"="mpc.smil" 
".wmv"="mpc.wmv" 
".wmp"="mpc.wmp" 
".wm"="mpc.wm" 
".asf"="mpc.asf" 
".smk"="mpc.smk" 
".bik"="mpc.bik" 
".fli"="mpc.fli" 
".flc"="mpc.flc" 
".flic"="mpc.flic" 
".dsm"="mpc.dsm" 
".dsv"="mpc.dsv" 
".dsa"="mpc.dsa" 
".dss"="mpc.dss" 
".ivf"="mpc.ivf" 
".d2v"="mpc.d2v" 
".swf"="mpc.swf" 
".divx"="mpc.divx" 
".rmvb"="mpc.rmvb" 
".amv"="mpc.amv" 
".dts"="mpc.dts" 
".aif"="mpc.aif" 
".aifc"="mpc.aifc" 
".aiff"="mpc.aiff" 
".alac"="mpc.alac" 
".amr"="mpc.amr" 
".apl"="mpc.apl" 
".au"="mpc.au" 
".snd"="mpc.snd" 
".m4r"="mpc.m4r" 
".mka"="mpc.mka" 
".mpa"="mpc.mpa" 
".m1a"="mpc.m1a" 
".m2a"="mpc.m2a" 
".ra"="mpc.ra" 
".aob"="mpc.aob" 
".mlp"="mpc.mlp" 
".wvx"="mpc.wvx" 
".wmx"="mpc.wmx" 
".mpcpl"="mpc.mpcpl" 
".mpls"="mpc.mpls" 
".bdmv"="mpc.bdmv" 

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications] 
"Media Player Classic (Gabest)"="SOFTWARE\\Clients\\Media\\Media Player Classic (Gabest)\\Capabilities" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\mplayerc.exe\SupportedTypes] 
".avi"="" 
".mpg"="" 
".mpeg"="" 
".mpe"="" 
".m1v"="" 
".m2v"="" 
".mpv2"="" 
".mp2v"="" 
".pva"="" 
".evo"="" 
".m2p"="" 
".ts"="" 
".tp"="" 
".trp"="" 
".m2t"="" 
".m2ts"="" 
".mts"="" 
".rec"="" 
".vob"="" 
".ifo"="" 
".mkv"="" 
".webm"="" 
".mp4"="" 
".m4v"="" 
".mp4v"="" 
".mpv4"="" 
".hdmov"="" 
".mov"="" 
".3gp"="" 
".3gpp"="" 
".3ga"="" 
".3g2"="" 
".3gp2"="" 
".flv"="" 
".f4v"="" 
".ogm"="" 
".ogv"="" 
".rm"="" 
".ram"="" 
".rmm"="" 
".rt"="" 
".rp"="" 
".smi"="" 
".smil"="" 
".wmv"="" 
".wmp"="" 
".wm"="" 
".asf"="" 
".smk"="" 
".bik"="" 
".fli"="" 
".flc"="" 
".flic"="" 
".dsm"="" 
".dsv"="" 
".dsa"="" 
".dss"="" 
".ivf"="" 
".d2v"="" 
".swf"="" 
".divx"="" 
".rmvb"="" 
".amv"="" 
".ac3"="" 
".dts"="" 
".aif"="" 
".aifc"="" 
".aiff"="" 
".alac"="" 
".amr"="" 
".ape"="" 
".apl"="" 
".au"="" 
".snd"="" 
".cda"="" 
".flac"="" 
".m4a"="" 
".m4b"="" 
".m4r"="" 
".aac"="" 
".mid"="" 
".midi"="" 
".rmi"="" 
".mka"="" 
".mp3"="" 
".mpa"="" 
".mp2"="" 
".m1a"="" 
".m2a"="" 
".mpc"="" 
".ofr"="" 
".ofs"="" 
".ogg"="" 
".oga"="" 
".opus"="" 
".ra"="" 
".tak"="" 
".tta"="" 
".wav"="" 
".wma"="" 
".wv"="" 
".aob"="" 
".mlp"="" 
".asx"="" 
".m3u"="" 
".m3u8"="" 
".pls"="" 
".wvx"="" 
".wax"="" 
".wmx"="" 
".mpcpl"="" 
".mpls"="" 
".bdmv"="" 

[HKEY_CLASSES_ROOT\mpc.3g2] 
@="3G2" 
"EditFlags"=dword:00000000 
"FriendlyTypeName"="3G2" 

[HKEY_CLASSES_ROOT\mpc.3g2\CurVer] 
@="mpc.3g2" 

[HKEY_CLASSES_ROOT\mpc.3g2\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mpc.3g2\shell\open] 

[HKEY_CLASSES_ROOT\mpc.3g2\shell\open\command] 
@="\"C:\\Program Files\\mplayerc.exe\" \"%1\"" 

[HKEY_CLASSES_ROOT\mpc.3ga] 
@="3GA" 
"EditFlags"=dword:00000000 
"FriendlyTypeName"="3GA" 

[HKEY_CLASSES_ROOT\mpc.3ga\CurVer] 
@="mpc.3ga" 

[HKEY_CLASSES_ROOT\mpc.3ga\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mpc.3ga\shell\open] 

[HKEY_CLASSES_ROOT\mpc.3ga\shell\open\command] 
@="\"C:\\Program Files\\mplayerc.exe\" \"%1\"" 

[HKEY_CLASSES_ROOT\mpc.3gp] 
@="3GP" 
"EditFlags"=dword:00000000 
"FriendlyTypeName"="3GP" 

[HKEY_CLASSES_ROOT\mpc.3gp\CurVer] 
@="mpc.3gp" 

[HKEY_CLASSES_ROOT\mpc.3gp\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mpc.3gp\shell\open] 

[HKEY_CLASSES_ROOT\mpc.3gp\shell\open\command] 
@="\"C:\\Program Files\\mplayerc.exe\" \"%1\"" 

[HKEY_CLASSES_ROOT\mpc.3gp2] 
@="3GP2" 
"EditFlags"=dword:00000000 
"FriendlyTypeName"="3GP2" 

[HKEY_CLASSES_ROOT\mpc.3gp2\CurVer] 
@="mpc.3gp2" 

[HKEY_CLASSES_ROOT\mpc.3gp2\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mpc.3gp2\shell\open] 

[HKEY_CLASSES_ROOT\mpc.3gp2\shell\open\command] 
@="\"C:\\Program Files\\mplayerc.exe\" \"%1\"" 

[HKEY_CLASSES_ROOT\mpc.3gpp] 
@="3GPP" 
"EditFlags"=dword:00000000 
"FriendlyTypeName"="3GPP" 

[HKEY_CLASSES_ROOT\mpc.3gpp\CurVer] 
@="mpc.3gpp" 

[HKEY_CLASSES_ROOT\mpc.3gpp\shell] 
@="open" 

[HKEY_CLASSES_ROOT\mpc.3gpp\shell\open] 

[HKEY_CLASSES_ROOT\mpc.3gpp\shell\open\command] 
@="\"C:\\Program Files\\mplayerc.exe\" \"%1\"" 

...................續... ... ......

完整版本這裏:http://pastebin.com/BinZdHVU

相關問題