2011-04-04 5 views
9

Так много программ содержит список возможных расширений и протоколов под апплетами панели управления «Стандартные программы». «Устанавливать стандартные значки по умолчанию», точнее. (Vista & 7)
Я хочу добавить свои программы в этот список и установить некоторые расширения, которые он может обрабатывать.Как добавить приложение в список программ по умолчанию для Windows Vista/7?

Еще одна вещь. Моя программа поддерживает аддоны для открытия большего количества файлов, поэтому список должен быть динамическим (я могу добавлять дополнительные расширения или даже протоколы в любое время)

Кстати, да, я знаю, это не совсем вопрос программирования. Это было бы мое скромное предположение, что это вопрос с регистрацией. Поэтому UAC не будет проблемой!

ответ

2

Ключи реестра, необходимые для регистрации приложения с по умолчанию программы Пользовательский интерфейс documented on MSDN (Часть Shell Developer's Guide)

+0

Ваш ответ определенно лучше моего (гораздо больше информации), поэтому я буду принимать его вместо этого. – Vercas

0

Ваш вопрос будет выполнен как часть процесса установки вашего приложения. Если вы используете WIX, вы можете настроить следующий ответ в this question:

Если вы хотите сделать это с помощью кода, ознакомьтесь с following article. Он написан с использованием VB.Net, но код довольно прост и может быть легко переведен на C#.

+0

Я знаю, как связать файлы. Я не знаю, как сообщить Windows о том, с какими файлами может работать моя программа. – Vercas

3

ОК, поэтому после тяжелой работы и поиска в полчаса реестра я выяснил, что мне необходимо зарегистрировать возможности своих приложений, а затем зарегистрировать мое приложение.

Для других, анализировать значения в этом ключе:

HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications 
2

Вот один я использую, чтобы ассоциировать главным образом видеофайлы с Media Player Classic (Gabest) в окнах 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