添加自定义文件扩展名关联

添加自定义文件扩展名关联

我想将自己的自定义文件扩展名添加到 win 7 注册表中。我还想为该扩展名添加一个右键单击选项“使用 xPlayer 播放”。

我想在我的 C# 应用程序中使用它。如何使用注册表来实现?

答案1

MSDN 有大量关于如何在注册表中使用文件扩展名的文档。请从以下文章开始:

文件类型和文件关联

文件关联和默认程序指南

更新:您需要创建以下注册表项和值至少(文件扩展名注册支持很多功能):

HKEY_CURRENT_USER\Software\Classes\.myext
(默认)=“MyAppExt”

HKEY_CURRENT_USER\Software\Classes\MyAppExt\shell\PlayWithXPlayer
(默认)= “使用 xPlayer 播放”

HKEY_CURRENT_USER\Software\Classes\MyAppExt\shell\PlayWithXPlayer\命令
(默认)= “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();

当您的播放器应用程序启动时,它可以查看其命令行参数,如果它看到传入的文件名,它可以根据需要播放该文件。

相关内容