我想将自己的自定义文件扩展名添加到 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();
当您的播放器应用程序启动时,它可以查看其命令行参数,如果它看到传入的文件名,它可以根据需要播放该文件。