2010-09-27 3 views
6

Я работаю над программой, которая может читать, писать и экспортировать файлы, все эти функции работают отлично и почти совершенны. Теперь я хотел бы выбрать файл и сообщить ему «Открыть с» (в контекстном меню правой кнопки мыши в Windows XP), и мое приложение сможет обрабатывать указанный файл. Я понятия не имею, с чего начать и где искать, поэтому я подумал, что попрошу здесь. Благодарю.Добавление функции «Открыть с ...» C#

+0

Вопрос заключается в том, как узнать, что ваше приложение запускается главным приложением exe или с открытием с диалоговым окном в расширение вашего приложения – MHD

ответ

0

Эй, я считаю, что это определено в реестре. Например. MSAccess определяется как:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit] 
@="&Edit" 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\command] 
@="\"C:\\Programmer\\Microsoft Office\\OFFICE11\\MSACCESS.EXE\" /NOSTARTUP \"%1\"" 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec] 
@="[SetForeground][ShellOpenDatabase \"%1\"]" 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Application] 
@="Msaccess" 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\IfExec] 
@="[SHELLNOOP]" 

[HKEY_CLASSES_ROOT\Access.Application.11\shell\Edit\ddeexec\Topic] 
@="ShellSystem" 

Графический интерфейс также существует в настройках папки -> Типы файлов.

Br. Morten

+0

вопрос заключается в том, как обрабатывать файл после того, как он открывается моим приложением – MHD

0

Поднимают диалоговое окно Выполнить и введите: regedit (редактор реестра)

Перейти к: HKEY_CLASSES_ROOT\*\shell и создать раздел под названием: «Открыть с помощью YourApp», создать еще один раздел под только что созданным им " команда». В поле Значение по умолчанию введите путь к вашему exe, затем добавьте «% 1» в конце для параметра.

1

Вы могли бы взглянуть на эту статью для Windows KB:

«Как связать расширение файла с приложения (Win32)» http://support.microsoft.com/kb/185453

Он выглядит, как он дает пример кода для того, как сделать это в VBScript (?), но похоже, что он проходит через пути реестра, на которые вы должны смотреть.

-1

В Program.cs, добавьте указанные строки ниже:

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     var mainForm = new MainForm(); 

     // Add these lines: 
     // ---------------------------------------------- 
     string[] args = Environment.GetCommandLineArgs(); 
     if (args.Count() >= 2) 
      mainForm.LoadFile(args[1]); 
     // ---------------------------------------------- 

     Application.Run(mainForm); 
    } 
} 

Где LoadFile(string filePath) ваш метод, который обрабатывает файл, который передается извне.

Смежные вопросы