2011-02-05 4 views
4

Хорошо, вы знаете, как в таких программах, как Microsoft Excel или Adobe Acrobat Reader, вы можете щелкнуть по файлу в проводнике и открыть его с помощью связанной программы. Это то, что я хочу, чтобы мое приложение выполняло. Теперь я знаю, как настроить ассоциации файлов в Windows, чтобы он знал программу по умолчанию для каждого расширения. Мой вопрос: как я могу открыть приложение для открытия файла при двойном щелчке по файлу.Как открыть файл с моим приложением?

Я искал в Интернете с помощью Google, я искал сайт msdn, и я искал несколько форумов, включая этот, но я не нашел ничего, что объясняет, как это сделать. Я предполагаю, что это имеет какое-то отношение к параметрам основного метода, но это всего лишь предположение.

Если кто-то может указать мне в правильном направлении, я могу взять его оттуда. Заранее спасибо за вашу помощь.

Шейн

+0

«Теперь я знаю, как настроить ассоциации файлов в Windows, так что он знает программу по умолчанию для каждого расширения» Если вы установили это, дважды щелкните файл * должен * открыть его в своем приложении. Если он не отправляет ваш код, который выполняет эту настройку, и кто-то может сказать вам, почему он не работает. – ChrisF

ответ

0

Вам нужно будет создать реестр-ключи для файла-расширения. This page хорошо описывает, какие ключи вам нужно установить (см. «3. Как создать ассоциации файлов?»).

2

Когда вы открываете файл с установленными вами ассоциациями, ваше приложение будет запущено с первым аргументом, содержащим путь к файлу.

Вы можете попробовать это простым способом, распечатав args с помощью вашего метода main, после того как вы откроете приложение, щелкнув соответствующий файл. 0-й элемент должен быть путём к вашему файлу.

Теперь, если вы успешно достигли этого момента, все, что вам нужно сделать, это прочитать содержимое данного файла. Я уверен, что здесь вы найдете больше, чем много ресурсов, о том, как это сделать.

10

Настройка ассоциаций в окнах отправит имя файла вашему приложению в командной строке.

Вам необходимо прочитать аргументы событий в ваших приложениях main, чтобы прочитать путь к файлу и открыть его в своем приложении.

См. this и this, чтобы узнать, как получить доступ к аргументам командной строки в вашем методе main.

static void Main(string[] args) 
{ 
    System.Console.WriteLine("Number of command line parameters = {0}", args.Length); 

    foreach (string s in args) 
    { 
     System.Console.WriteLine(s); 
    } 
} 
2

Я думаю, это то, что вы ищете:

FileInfo fi = new FileInfo(sfd.FileName); //the file you clicked or saved just point 
              //to the right file location to determine 
              //full filename with location info 

// opening file 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = @fi.FullName; 
startInfo.WindowStyle = ProcessWindowStyle.Normal; 

Process process = new Process(); 
process.StartInfo = startInfo; 
process.Start(); 
Смежные вопросы