一种将项目添加到Windows上下文菜单及其背后的命令的方法

时间:2019-07-03 17:49:23

标签: c# windows shell contextmenu

我想用自己的代码(基于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时发生错误时,我会对其进行处理。

0 个答案:

没有答案