許多程序都在「默認程序」控制面板小程序下列出了可能的擴展名和協議列表。 「更精確地設置默認的PRogram」。 (Vista & 7)
我希望將我的程序添加到該列表中並設置它可以處理的一些擴展。如何將我的應用程序添加到Windows Vista/7的默認程序列表中?
還有一件事。我的程序支持用於打開更多文件的插件,因此列表應該是動態的(我可以隨時添加更多擴展或甚至協議)
順便說一句,是的,我知道,這不完全是編程問題。這是我的簡單猜測,這是一個註冊表問題。所以UAC不會是一個問題!
許多程序都在「默認程序」控制面板小程序下列出了可能的擴展名和協議列表。 「更精確地設置默認的PRogram」。 (Vista & 7)
我希望將我的程序添加到該列表中並設置它可以處理的一些擴展。如何將我的應用程序添加到Windows Vista/7的默認程序列表中?
還有一件事。我的程序支持用於打開更多文件的插件,因此列表應該是動態的(我可以隨時添加更多擴展或甚至協議)
順便說一句,是的,我知道,這不完全是編程問題。這是我的簡單猜測,這是一個註冊表問題。所以UAC不會是一個問題!
註冊到默認的應用程序所需的註冊表項程序UI是documented on MSDN(在Shell Developer's Guide的部分)
Your'e將這樣做作爲您的應用程序的安裝過程的一部分。如果您使用的是WIX,則可以在this question中配置以下答案:
如果您確實想通過代碼執行此操作,請查看following article。它使用VB.Net編寫,但代碼相當簡單,可以輕鬆轉換爲C#。
我知道如何關聯文件。我不知道如何讓Windows知道我的程序可以使用哪些文件。 – Vercas 2011-04-04 18:03:57
OK,經過艱苦的工作和半小時長的註冊表搜索後,我發現我必須註冊我的應用程序功能,然後註冊我的應用程序。
對於其他人,分析價值在這個關鍵:
HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
這裏是一個我主要使用視頻文件與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
你的答案肯定比我的好(更多信息),所以我會接受它。 – Vercas 2011-04-08 10:34:53