- Добавить контекстное меню Windows как " Merge PDF < /strong>" При выборе нескольких файлов PDF. После добавления отображение только в том случае, если выбраны несколько файлов PDF. Когда пользователь нажимает на «Merge PDF», начинается как один экземпляр приложения и загружает все выбранные PDF в ListView. < /P>
< /li>
Добавьте контекстное меню Windows как « Откройте PDF » при выборе отдельных файлов PDF. После добавления отображение только в том случае, если выбраны отдельные файлы PDF. Когда пользователь нажимает на «Merge PDF», начинается как один экземпляр приложения и отображает имя файла в поле сообщения.
Я пытаюсь и добавляю его в окна Контекстное меню. < /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