Добавление пользовательских ассоциаций расширения файла

Я хочу добавить свое собственное расширение файла в победу 7 реестров. И я также хочу добавить опцию "Play with xPlayer" щелчка правой кнопкой для этого расширения.

Я хочу использовать его в своем приложении C#. Как я могу сделать это с помощью реестра?

5
задан 30.10.2011, 22:42

1 ответ

MSDN имеет обширную документацию относительно того, как работать с расширениями файла в Реестре. Запустите с этих статей:

Типы файлов и ассоциации файлов

Инструкции для ассоциаций файлов и программы по умолчанию

Обновление: необходимо было бы создать следующие Ключи реестра, и значения как минимум (регистрация расширения файла поддерживает МНОГО функций):

HKEY_CURRENT_USER\Software\Classes\.myext
(Default) = "MyAppExt"

HKEY_CURRENT_USER\Software\Classes\MyAppExt\shell\PlayWithXPlayer
(Default) = "Play with xPlayer"

HKEY_CURRENT_USER\Software\Classes\MyAppExt\shell\PlayWithXPlayer\command
(Default) = ""c:\path to\xplayer.exe" "%1""

Замена HKEY_LOCAL_MACHINE если Вы хотите, чтобы Ваше расширение файла было доступно для всех пользователей на ПК вместо просто пользователя, который запускает Ваше приложение.

Например:

using System;
using Microsoft.Win32;

// substitute "HKEY_LOCAL_MACHINE" if needed...
Registry.SetValue("HKEY_CURRENT_USER\\Software\\Classes\\.xpl", "", "xPlayer", RegistryValueKind.String);
Registry.SetValue("HKEY_CURRENT_USER\\Software\\Classes\\xPlayer\\shell\\PlayWithXPlayer", "", "Play with xPlayer", RegistryValueKind.String);
Registry.SetValue("HKEY_CURRENT_USER\\Software\\Classes\\xPlayer\\shell\\PlayWithXPlayer\\command", "", "\"c:\\path to\\xplayer.exe\" \"%1\"", RegistryValueKind.String);

Кроме того:

using System;
using Microsoft.Win32;

// substitute Registry.LocalMachine if needed...
RegistryKey rkRootKey = Registry.CurrentUser;

RegistryKey rk = rkRootKey.CreateSubKey("Software\\Classes\\.xpl");
rk.SetValue("", "xPlayer", RegistryValueKind.String);
rk.Close();

rk = rkRootKey.CreateSubKey("Software\\Classes\\xPlayer\\shell\\PlayWithXPlayer");
rk.SetValue("", "Play with xPlayer", RegistryValueKind.String);

RegistryKey rk2 = rk.CreateSubKey("command");
rk2.SetValue("", "\"c:\\path to\\xplayer.exe\" \"%1\"", RegistryValueKind.String);
rk2.Close();

rk.Close();

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

9
ответ дан 07.12.2019, 17:13

Теги

Похожие вопросы