Запустить файл с аргументами командной строки, не зная местоположение exe?

StackOverflow https://stackoverflow.com/questions/35914

  •  09-06-2019
  •  | 
  •  

Вопрос

Вот ситуация: я пытаюсь запустить приложение, но местоположение .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 слабые; Я не нашел этот пост. Хотя я обычно не люблю заглядывать в реестр, это отличное решение. Спасибо!

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top