Я знаю, как запустить внешнее приложение на C# System.Diagnostics.Process.Start(executableName);
, но что делать, если приложение, которое я хочу запустить, имеет расширение, которое не распознается Windows как расширение исполняемого файла. В моем случае это application.bin
.Запуск внешнего приложения без расширения .exe
ответ
Ключ установить Process.StartInfo.UseShellExecute
свойство false
до начала процесса, например:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\tmp\test.bin";
p.StartInfo.UseShellExecute = false;
p.Start();
Это запустит процесс непосредственно: вместо того, чтобы идти через «давайте попробуем выяснить, исполняемый файл для указанный расширение файла "shell logic, файл будет считаться исполняемым.
Другой синтаксис, чтобы достичь того же результата может быть:
var processStartInfo = new ProcessStartInfo
{
FileName = @"c:\tmp\test.bin",
UseShellExecute = false
};
Process.Start(processStartInfo);
Чтобы следовать на вход MDB: данная работает только если вы полностью определить путь к файлу. Если вы оставите это, чтобы Windows могла искать переменную среды PATH для файла, она добавит «.exe» для каждой папки, которую он ищет.
К сожалению, это больно для проекта, над которым я работаю, потому что местоположение полностью зависит от PATH, как установлено в пользовательском файле. Мне нужно будет найти файл вручную и установить свойство StartInfo.FileName на полный путь.
Ах ... Оказывается, есть немного старый DOS трюк вы можете вы для этого добавить один период в конце имени файла и Windows, будет искать файл без расширение. Установите StartInfo.FileName = "[appname]." и это не позволит добавить «.exe» в конце. – Yelnic
И следовать дальше с @yelnic. Попробуйте использовать cmd.exe /C myapp
, я нашел его весьма полезным, когда хочу немного больше из Process.Start()
.
using (Process process = Process.Start("cmd.exe")
{
// `cmd` variable can contain your executable without an `exe` extension
process.Arguments = String.Format("/C \"{0} {1}\"", cmd, String.Join(" ", args));
process.UseShellExecute = false;
process.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();
output = process.StandardOutput.ReadToEnd();
}
- 1. Запуск внешнего EXE из python
- 2. Закрытие приложения и запуск внешнего приложения
- 3. Запуск внешнего приложения
- 4. Запуск внешнего приложения android
- 5. Запуск внешнего приложения
- 6. Ошибка Process.Start без расширения .exe
- 7. Запуск внешнего exe до завершения установки Wix
- 8. Запуск внешнего exe внутри GUI Python (PyQt)
- 9. Запуск внешнего 4.0-процесса из приложения 2.0
- 10. Запуск приложения (.EXE) с C#?
- 11. Запуск Exe из приложения UWP
- 12. Запуск расширения iOS без UI
- 13. Запуск .exe без копирования .dlls
- 14. Запуск внешнего приложения из node.js
- 15. Запуск приложения exe на основе .NET без .NET Framework
- 16. Запуск внешнего приложения из моего приложения
- 17. Запуск .exe без запуска winform UI
- 18. Освобождение приложения без расширения?
- 19. (Python) Запуск внешнего приложения и дождаться его конца
- 20. Запуск PHP без расширения без использования mod_rewrite?
- 21. Windows - Выполнение исполняемого файла (.exe) без расширения .exe
- 22. Запуск внешнего консольного приложения из Java
- 23. Запуск внешнего приложения из плагина NPAPI
- 24. Сборка расширения для внешнего приложения для Android
- 25. Запуск приложения exe из службы windows
- 26. Запуск C++ exe внутри приложения C# Проблема
- 27. Запуск приложения метро без гарнитуры
- 28. PHP Асимметричное шифрование без внешнего расширения
- 29. Запуск EXE-файла без прав администратора
- 30. Запуск файла .exe без указания пути C#
хорошо объяснение :-) – Chad