我想用自己的代码(基于C#.NET)在Windows上下文菜单(在特殊类型的文件(例如,仅.srt文件)上)添加项(
)我一直在寻找一些帮助,例如在不同站点上的不同文章,但是我没有找到任何可以帮助我完成我想做的全部事情的东西,但是只有其中的一小部分-仅添加了物品到上下文菜单。我从互联网上获得了此代码,但是我不明白如何在上下文菜单中的代码中添加实际的空/命令。那是我基于.NET Form Application(C#)的项目代码
using System;
using System.Windows.Forms;
using Microsoft.Win32;
namespace Manipulate_Context_Menu
{
public partial class Form1 : Form
{
private RegistryKey rkReg = Registry.ClassesRoot;
private string strKey = @"AllFilesystemObjects\shellex\ContextMenuHandlers\Convert";
private string strClSID = "{C2FBB630-2971-11D1-A18C-00C04FD75D13}";
public Form1()
{
InitializeComponent();
}
private void CopyTo()
{
RegistryKey rkKey = rkReg.OpenSubKey(strKey);
if (rkKey == null)
{
try
{
rkKey = rkReg.CreateSubKey(strKey);
rkKey.SetValue(string.Empty, strClSID);
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show("Error", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("Already installed.", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void Button1_Click(object sender, EventArgs e)
{
CopyTo();
}
}
}
我希望我运行一次程序,它将只向目标文件(.srt)添加项目到上下文菜单,并在Windows上下文菜单中添加项目,当我按下Windows上下文菜单的项目时,我可以将此.srt文件从另一种编码转换。该程序的当前结果只是MessageBox,当我尝试输入RegistryKey时发生错误时,我会对其进行处理。