C# System.Diagnostics.Process.Start(executableName);
içinde harici bir uygulama nasıl çalıştırılacağını biliyorum, ancak çalıştırmak istediğim uygulama bir yürütülebilir dosyanın uzantısı olarak Windows tarafından tanınmayan bir uzantıya sahipse. Benim durumumda application.bin
.Hiçbir .exe uzantısı olmadan harici uygulamayı çalıştırın
cevap
Anahtar önce işlemine başlamadan için false
için Process.StartInfo.UseShellExecute
özelliğini ayarlamaktır, örneğin:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\tmp\test.bin";
p.StartInfo.UseShellExecute = false;
p.Start();
Bu doğrudan işlemini başlatmak: Bunun yerine geçiyor "adlı için yürütülebilir anlamaya çalışalım belirtilen dosya uzantısı "kabuk mantığı, dosya yürütülebilir kendisi olarak kabul edilecektir.
Başka sözdizimi
aynı sonucu olabilir ulaşmak için:var processStartInfo = new ProcessStartInfo
{
FileName = @"c:\tmp\test.bin",
UseShellExecute = false
};
Process.Start(processStartInfo);
mdb girişine üzerine izleyin: tam dosyanın yolunu nitelemek bu SADECE çalışır. Windows'un dosyanın PATH ortam değişkenini aramasına izin vermek için bırakırsanız, arama yaptığı her klasör için bir ".exe" ekleyecektir.
Ne yazık ki, bu, üzerinde çalıştığım proje için acı veriyor, çünkü konum kullanıcı dosyasında yer alan PATH'a tamamen bağımlı. Dosyayı el ile bulmalı ve StartInfo.FileName özelliğini tam olarak nitelenmiş bir yola ayarlamalıyım.
Ah :-) ... bunu için can biraz eski DOS numara var çıkıyor: dosya adının sonuna bir tek nokta ekleyin ve Windows bir olmadan dosyada arar uzantı. StartInfo.FileName = "[appname]." Öğesini ayarlayın. ve sonunda ".exe" eklenmesini engeller. – Yelnic
Ve @yelnic'ten devam etmek için. cmd.exe /C myapp
kullanmayı deneyin, Process.Start()
'dan biraz daha fazlasını istediğimde oldukça yararlı buldum.
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. Tkinter harici bir exe dosyasını açın
- 2. Exe kaynağı ayıklayın ve çalıştırın (Visual Basic'te)
- 3. Stok olmadan Ansible playbook'u çalıştırın
- 4. Uygulamayı tam ekran (F11) modunda çalıştırın
- 5. Emacs olmadan elisp programını çalıştırın?
- 6. Mono yükleme olmadan uygulamayı dağıtın
- 7. Web sitesi kayıt işlemini harici siteden çalıştırın
- 8. WPF'de harici bir uygulamayı nasıl barındırabilirim?
- 9. SiteCore .aspx uzantısı olmadan urls
- 10. EXE Ben kullanıcı müdahalesi olmadan uygulamayı yüklemek için PowerShell komut şu var sessiz yükleme
- 11. Düğüm/npm olmadan Angular2 projesini çalıştırın
- 12. Bir uygulamayı cihaz olmadan serbest bırakabilir miyim?
- 13. Evrensel bir uygulamayı iPad'de bir 'eski' iPhone uygulaması olarak çalıştırın
- 14. .emacs uzantısı olmadan arabellek dosyası adı edinin
- 15. Hata olmadan hiçbir şey yapmaya ne dersin?
- 16. Windows'da Compile Mono projesini çalıştırın ve Linux'ta çalıştırın
- 17. yerli paket exe
- 18. Hatalar (cc1.exe)
- 19. PHP betiğini wordpress ile aynı dizinde çalıştırın, ancak bu olmadan
- 20. JUnit testlerini maven veya karınca olmadan otomatik olarak Jenkins'de çalıştırın.
- 21. Inline assembly'ı çalıştırın
- 22. çalıştırın Flaş WPF
- 23. İletki - dosya/exe üzerinden exe dosyasını yükle
- 24. benim .exe
- 25. URL'de .php uzantısı olmadan bir PHP web sayfası nasıl çalıştırılır?
- 26. Java'da uzantısı olmadan File nesnesinin adı nasıl alınır?
- 27. npm cordova cli olmadan harici/harici eklentiyi nasıl pgb olarak ekleyebilirim?
- 28. Harici xib olmadan storyboard kullanarak alt görünüm ekleyin
- 29. Geçerli satırı vim içine harici komutla gönder (yakalama olmadan)
- 30. Neden Freetype benim .exe
güzel açıklama – Chad