Запустить файл с аргументами командной строки, не зная местоположение exe? - PullRequest
5 голосов
/ 30 августа 2008

Вот ситуация: я пытаюсь запустить приложение, но местоположение .exe мне неизвестно. Теперь, если расширение файла зарегистрировано (в Windows), я могу сделать что-то вроде:

Process.Start("Sample.xls");

Однако мне также нужно передать некоторые аргументы командной строки. Я не мог заставить это работать

   Process p = new Process();
   p.StartInfo.FileName = "Sample.xls";
   p.StartInfo.Arguments = "/r";  // open in read-only mode
   p.Start();

Какие-нибудь предложения по механизму решения этой проблемы?

Редактировать @ aku

Мои навыки поиска в StackOverflow слабые; Я не нашел этот пост. Хотя я обычно не люблю заглядывать в реестр, это отличное решение. Спасибо!

Ответы [ 2 ]

4 голосов
/ 30 августа 2008

Используя мой код из этого ответа, вы можете получить команду, связанную с расширением xls. Затем вы можете передать эту команду методу Process.Start.

2 голосов
/ 30 августа 2008

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

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