PDA

Показать полную графическую версию : [решено] Добавление собственной программы в список Программы по Умолчанию


Nizaury
21-09-2015, 01:31
Для добавления программы в список "Программы по умолчанию" в Windows 10, в ресурсах программы должен быть указан "CompanyName".
Чтобы добавить собственную программу в список "Программы по умолчанию", создайте и примените reg-файл, используя шаблон ниже:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\xnviewmp.exe\shell\open\command\]
@="\"D:\\Programs\\MyProgram\\myprogram.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications\]
"XnViewMP"="Software\\MyProgram\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram\Capabilities\]
"ApplicationDescription"="MyProgram is a fast multi-format program for everything."
"ApplicationName"="MyProgram"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyProgram.ext\DefaultIcon\]
@="D:\\Programs\\MyProgram\\FileIcons\\Icon.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyProgram.ext\shell\open\command\]
@="\"D:\\Programs\\MyProgram\\myprogram.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram\Capabilities\FileAssociations\]
".ext"="MyProgram.ext"
Пояснения к reg-файлу:

1) Вместо myprogram.exe укажите имя exe-файла, запускающего программу.
2) Вместо D:\\Programs\\MyProgram\\ укажите путь к exe-файлу программы.
3) Вместо D:\\Programs\\MyProgram\\FileIcons\\Icon.ico укажите путь к иконке, для файлов сопоставляемых с данной программой.
4) В остальных местах вместо MyProgram укажите имя программы.
5) В значении параметра ApplicationDescription введите описание программы.
6) В значении параметра ApplicationName введите имя программы.
7) Вместо .ext введите расширение файла, которое должно быть сопоставлено с программой.
8) Для добавления поддерживаемых расширений:

8.1) скопируйте указанные ниже строки для каждого нового расширения.
Сделав изменения в соответствии с описанными выше пунктами.

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyProgram.ext\DefaultIcon\]
@="D:\\Programs\\MyProgram\\FileIcons\\Icon.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyProgram.ext\shell\open\command\]
@="\"D:\\Programs\\MyProgram\\myprogram.exe\" \"%1\""

8.2) Добавьте новое расширение ".ext"="MyProgram.ext" в ветку
[HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram\Capabilities\FileAssociations\]
Сделав изменения в соответствии с описанными выше пунктами.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\xnviewmp.exe\shell\open\command\]
@="\"D:\\Programs\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications\]
"XnViewMP"="Software\\XnViewMP\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\XnViewMP\Capabilities\]
"ApplicationDescription"="XnViewMP is a fast multi-format graphics browser, viewer, and converter."
"ApplicationName"="XnViewMP for Windows"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.bmp\DefaultIcon\]
@="D:\\Programs\\XnViewMP\\FileIcons\\bmp.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.bmp\shell\open\command\]
@="\"D:\\Programs\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.jpg\DefaultIcon\]
@="D:\\Programs\\XnViewMP\\FileIcons\\jpg.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.jpg\shell\open\command\]
@="\"D:\\Programs\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.png\DefaultIcon\]
@="D:\\Programs\\XnViewMP\\FileIcons\\png.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.png\shell\open\command\]
@="\"D:\\Programs\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\XnViewMP\Capabilities\FileAssociations\]
".bmp"="XnViewMP.bmp"
".jpg"="XnViewMP.jpg"
".png"="XnViewMP.png"

____________________________________________________________________________________________________ ________________________________________________________
Подскажите, пожалуйста, как добавить собственную программу в список Программы по умолчанию (Default Programs) в Windows 10?

К примеру, хочу добавить в данный список установленную программу AkelPad.

Создал и применил reg-файл указанного ниже содержания, в Windows 7 все прекрасно добавляется и работает, но а в Windows 10 программа не появляется в списке.
Может кто знает, что надо добавить или изменить в данном reg-файле?

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities]
"ApplicationDescription"="AkelPad - Text Editor"
"ApplicationIcon"="C:\\Program Files\\AkelPad\\AkelPad.exe,0"
"ApplicationName"="AkelPad"

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities\FileAssociations]
".txt"="AkelPadText.txt"
".ini"="AkelPadText.ini"
".reg"="AkelPadText.reg"
".bat"="AkelPadText.bat"
".cmd"="AkelPadText.cmd"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\AkelPad\Capabilities\FileAssociations]
".txt"="AkelPadText.txt"
".ini"="AkelPadText.ini"
".reg"="AkelPadText.reg"
".bat"="AkelPadText.bat"
".cmd"="AkelPadText.cmd"

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"AkelPad"="Software\\AkelPad\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\AkelPad.exe\shell\open\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AkelPad.exe]
@="C:\\Program Files\\AkelPad\\AkelPad.exe"
"Path"="C:\\Program Files\\AkelPad"

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts]
"Applications\\AkelPad.exe_.txt"=dword:00000000
"Applications\\AkelPad.exe_.ini"=dword:00000000
"Applications\\AkelPad.exe_.reg"=dword:00000000
"Applications\\AkelPad.exe_.bat"=dword:00000000
"Applications\\AkelPad.exe_.cmd"=dword:00000000
"AkelPadText.txt_.txt"=dword:00000000
"AkelPadText.ini_.ini"=dword:00000000
"AkelPadText.reg_.reg"=dword:00000000
"AkelPadText.bat_.bat"=dword:00000000
"AkelPadText.cmd_.cmd"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.txt]
@="AkelPad Document"
"FriendlyTypeName"="AkelPad Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.txt\DefaultIcon]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe,0\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.txt\shell\open\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.reg\shell\edit\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.ini]
@="AkelPad Document"
"FriendlyTypeName"="AkelPad Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.ini\DefaultIcon]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe,0\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.ini\shell\edit\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.reg]
@="AkelPad Document"
"FriendlyTypeName"="AkelPad Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.reg\DefaultIcon]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe,0\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.reg\shell\edit\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.bat]
@="AkelPad Document"
"FriendlyTypeName"="AkelPad Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.bat\DefaultIcon]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe,0\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.bat\shell\edit\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.cmd]
@="AkelPad Document"
"FriendlyTypeName"="AkelPad Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.cmd\DefaultIcon]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe,0\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPadText.cmd\shell\edit\command]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

ArmDeForcer
22-09-2015, 01:18
А зачем такая простыня? Откройте параметры и настройте ассоциации файлов с этими разрешениями.

Vadikan
22-09-2015, 06:44
+ http://www.outsidethebox.ms/14267/

Nizaury
23-09-2015, 12:51
А зачем такая простыня? Откройте параметры и настройте ассоциации файлов с этими разрешениями. »

Весь смысл вопроса именно в том, не как ассоциировать расширения, а как добавить в список Default Programs.

Vadikan
23-09-2015, 16:38
Nizaury
https://msdn.microsoft.com/en-us/library/windows/desktop/cc144154(v=vs.85).aspx?f=255&MSPPError=-2147217396

Nizaury
23-09-2015, 18:15
https://msdn.microsoft.com/en-us/lib...or=-2147217396 »
Спасибо за информацию четко по теме.

Самое интересное, созданный мною reg-файл добавляет программу AkelPad в список Программы по Умолчанию в Windows XP и в Windows 7.
В Windows 10 почему-то указанный reg-файл не срабатывает, и программа не видна в стандартном окне Программы по Умолчанию, но видна в списке программы "Programs Default Editor" (http://defaultprogramseditor.com/).

Vadikan
23-09-2015, 19:13
Nizaury, там есть спец примечание по 10. Читали?

Это не решение вашей задачи, ибо техническое описание новой системы отсутствует.

Nizaury
23-09-2015, 20:31
Vadikan,
Так увлекся сравнением ключей и параметров, что не заметил вначале статьи сообщение о смене механизма в Windows 10. :(

У Вас случайно нету ссылки на подробное описание механизма добавления программы в Windows 10 (а не те общие слова указанные в статье по ссылке).

Vadikan
24-09-2015, 11:38
Nizaury, техническое описание новой системы отсутствует. »

Nizaury
24-09-2015, 19:02
Vadikan,

Думал Вы подразумевали отсутствие описания на указанной странице, а Вы также имели ввиду отсутствие у себя ссылки на материал. Понятно.

В Windows 7 было достаточно добавить необходимые параметры в ветки реестра и программа появлялась в списке Программы по умолчанию.
Если существуют программы (Например: Aimp, PotPlayer, XnView, Firefox), которые добавляют себя в Windows 10 в данный список, то значит есть какой-то механизм.
Его надо либо выявить путем экспериментов, либо прочитать мануал.

Nizaury
26-09-2015, 01:57
Ради эксперимента установил программу XnView и с помощью SysTracer Pro вычислил минимальный набор (всего лишь 20) строк, необходимый для регистрации портативного варианта программы в списке "Программы по умолчанию" в Windows 10.

Указанный ниже пример, добавляет портативный вариант программы XnViewMP в список "Программы по умолчанию" в чистую Windows 10, установленную на виртуальной системе.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\xnviewmp.exe\shell\open\command\]
@="\"C:\\Users\\Nizaury\\Desktop\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.bmp\DefaultIcon\]
@="C:\\Users\\Nizaury\\Desktop\\XnViewMP\\FileIcons\\bmp.ico"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\XnViewMP.bmp\shell\open\command\]
@="\"C:\\Users\\Nizaury\\Desktop\\XnViewMP\\xnviewmp.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications\]
"XnViewMP"="Software\\XnViewMP\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\XnViewMP\Capabilities\]
"ApplicationDescription"="XnViewMP is a fast multi-format graphics browser, viewer, and converter. It reads more than 400 file formats."
"ApplicationName"="XnViewMP for Windows"

[HKEY_LOCAL_MACHINE\SOFTWARE\XnViewMP\Capabilities\FileAssociations\]
".bmp"="XnViewMP.bmp"
Сделал по данному шаблону для AkelPad - не срабатывает.


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\AkelPad.exe\shell\open\command\]
@="\"C:\\Users\\Nizaury\\Desktop\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPad.txt\DefaultIcon\]
@="C:\\Users\\Nizaury\\Desktop\\AkelPad\\AkelPad.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPad.txt\shell\open\command\]
@="\"C:\\Users\\Nizaury\\Desktop\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications\]
"AkelPad"="Software\\AkelPad\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities\]
"ApplicationDescription"="AkelPad is a fast multi-format text editor."
"ApplicationName"="AkelPad"

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities\FileAssociations\]
".txt"="AkelPad.txt"
Попробовал заменить файл xnviewmp.exe на переименованный в данное имя AkelPad.exe - программа XnViewMP пропала из списка "Программы по умолчанию".

Интересно в чем может быть причина?
Может поддержка добавления в список "Программы по умолчанию" должна быть заложена на программном уровне?

Nizaury
28-09-2015, 16:24
Проблема решена.
В Windows 10 для добавления программы в список "Программы по умолчанию", в ресурсах программы должен быть указан "CompanyName".

Vadikan
28-09-2015, 16:27
Nizaury, и при этом достаточно твика из первого поста? В общем, оформите шапку, плиз.

Nizaury
28-09-2015, 19:03
Vadikan,

Твик в первом сообщении слишком громоздкий.

Достаточно следующего шаблона:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\AkelPad.exe\shell\open\command\]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPad.txt\DefaultIcon\]
@="C:\\Program Files\\AkelPad\\AkelPad.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AkelPad.txt\shell\open\command\]
@="\"C:\\Program Files\\AkelPad\\AkelPad.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications\]
"AkelPad"="Software\\AkelPad\\Capabilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities\]
"ApplicationDescription"="AkelPad is a fast multi-format text editor."
"ApplicationName"="AkelPad"

[HKEY_LOCAL_MACHINE\SOFTWARE\AkelPad\Capabilities\FileAssociations\]
".txt"="AkelPad.txt"

Шапку изменил. Заменив в ней предыдуший твик на указанный шаблон.

Wu-Tang
03-11-2020, 20:39
прошу прощения за подъем темы, я где-то видел тулзу, которая одним кликом все делала корректно и под 10-ку тоже, но не могу вспомнить где, то ли от nirsoft то ли...




© OSzone.net 2001-2012