Запустить файл с аргументами командной строки, не зная местоположение exe?
Вопрос
Вот ситуация: я пытаюсь запустить приложение, но местоположение .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
.
Другие советы
Если вы запрашиваете реестр, вы можете получить данные о зарегистрированном типе файла, а затем вызвать приложение, напрямую передав аргументы командной строки. См. Программная проверка и настройка типов файлов , где приведен пример получения информации оболочки для типа файла. . р>