Интеграция в контекстное меню Windows Shell для нескольких файлов с выбранным отображением менюC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Интеграция в контекстное меню Windows Shell для нескольких файлов с выбранным отображением меню

Сообщение Гость »

  • Добавить контекстное меню Windows как " Merge PDF < /strong>" При выборе нескольких файлов PDF. После добавления отображение только в том случае, если выбраны несколько файлов PDF. Когда пользователь нажимает на «Merge PDF», начинается как один экземпляр приложения и загружает все выбранные PDF в ListView. < /P>
    < /li>
    Добавьте контекстное меню Windows как « Откройте PDF
    » при выборе отдельных файлов PDF. После добавления отображение только в том случае, если выбраны отдельные файлы PDF. Когда пользователь нажимает на «Merge PDF», начинается как один экземпляр приложения и отображает имя файла в поле сообщения.
< Br /> На самом деле, I написал оригинальный код в VB.net. Как мы знаем, C# используется более широко, чем vb.net по этой причине, я только что сделал преобразование в C# для легкого понимания для разработчиков C#. < /P>
Я пытаюсь и добавляю его в окна Контекстное меню. < /p>
private void cmdRegisterContextMenu_Click(object sender, EventArgs e)
{
// Registry path for PDF files
string pdfKeyPath = @"SystemFileAssociations\.pdf\Shell";
string openKeyPath = pdfKeyPath + @"\Open PDF";
string mergeKeyPath = pdfKeyPath + @"\Merge PDF";

// Path to your application executable
string appPath = "\"" + Application.ExecutablePath + "\"";

// Register "Open PDF" for single file selection
using (RegistryKey openKey = Registry.ClassesRoot.CreateSubKey(openKeyPath))
{
openKey.SetValue("", "Open PDF");
openKey.SetValue("Icon", appPath);
}

using (RegistryKey openCommandKey = Registry.ClassesRoot.CreateSubKey(openKeyPath + @"\Command"))
{
openCommandKey.SetValue("", appPath + " \"%1\"");
}

// Register "Merge PDF" for multiple file selection
using (RegistryKey mergeKey = Registry.ClassesRoot.CreateSubKey(mergeKeyPath))
{
mergeKey.SetValue("", "Merge PDF");
mergeKey.SetValue("App", appPath);
mergeKey.SetValue("Icon", @"E:\My Software\WindowsApp29\Project\Extra\graph_chart.ico");
}

using (RegistryKey mergeCommandKey = Registry.ClassesRoot.CreateSubKey(mergeKeyPath + @"\Command"))
{
mergeCommandKey.SetValue("", appPath + " \"%*\"");
}

MessageBox.Show("Context menu entries registered successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private void ContextMenu_Load(object sender, EventArgs e)
{
string[] args = Environment.GetCommandLineArgs();

if (args.Length > 1)
{
var pdfFiles = new List();

for (int i = 1, loopTo = args.Length - 1; i
Но немногие требуемые и все еще заставляют решение. Работа < /p>
mergeCommandKey.SetValue("", appPath + " \"%*\"");
< /code>
< /li>
[*] "Merge pdf" только Despaly, когда выбраны несколько файлов PDF. < /p>
< /li>
"merge pdf" Начните с одним экземпляром. < /p>
< /li>
"Открыть PDF" Только при выборе файла одного PDF -файла. .

[*] "Открыть PDF" Начать с одного экземпляра.



Подробнее здесь: https://stackoverflow.com/questions/794 ... ction-disp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»