Способ добавления элемента в контекстное меню Windows и его собственная команда позади него. - PullRequest
0 голосов
/ 03 июля 2019

Я хочу добавить и пункт в контекстном меню Windows (для файлов особого типа - например, только для файлов .srt), со своим собственным кодом (на основе C # .NET), чтобы что-то делать

Я искалдля какой-то помощи, например, для разных статей на разных сайтах, но я не нашел ничего, что могло бы помочь мне завершить все, что я хочу сделать, а только самую маленькую его часть - только добавить элемент в контекстное меню.Я получил этот код из Интернета, но я не понимаю, как добавить фактическую void / команду с кодированием к текущему пункту в контекстном меню.Это мой код проекта на основе .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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...