So come eseguire un'applicazione esterna in C# System.Diagnostics.Process.Start(executableName);
ma cosa succede se l'applicazione che voglio eseguire ha un'estensione che non è riconoscibile da Windows come estensione di un eseguibile. Nel mio caso è application.bin
.Eseguire un'applicazione esterna senza estensione .exe
risposta
chiave è quello di impostare la proprietà Process.StartInfo.UseShellExecute
per false
prima di iniziare il processo, ad esempio:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"c:\tmp\test.bin";
p.StartInfo.UseShellExecute = false;
p.Start();
Questo avvierà il processo direttamente: invece di passare attraverso il "cerchiamo di capire l'eseguibile per il estensione di file specificata "shell logic, il file verrà considerato come eseguibile stesso.
Un'altra sintassi per ottenere lo stesso risultato potrebbe essere:
var processStartInfo = new ProcessStartInfo
{
FileName = @"c:\tmp\test.bin",
UseShellExecute = false
};
Process.Start(processStartInfo);
Per seguire sulla ingresso di mdb: questo funziona solo se si qualificano pienamente il percorso del file. Se si lascia che Windows cerchi la variabile d'ambiente PATH per il file, aggiungerà un ".exe" per ogni cartella che cerca.
Purtroppo, questo è doloroso per il progetto su cui sto lavorando, perché la posizione dipende interamente dal PERCORSO come impostato in un file utente. Dovrò trovare il file manualmente e impostare la proprietà StartInfo.FileName su un percorso completo.
Ah ... si rivela c'è un po 'vecchio trucco DOS è possibile voi per questo: Aggiungere un singolo periodo fino alla fine del nome del file e Windows cercherà il file senza estensione. Imposta StartInfo.FileName = "[nome app]." ed eviterà di aggiungere ".exe" alla fine. – Yelnic
E a seguire da @yelnic. Prova a utilizzare cmd.exe /C myapp
, l'ho trovato abbastanza utile quando voglio un po 'di più su 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. senza estensione
- 2. Come eseguire l'applicazione desktop C# con estensione .exe in Mac OSX?
- 3. Configurazione di IIS 6.0 per eseguire cgi (.exe)
- 4. MapView senza estensione MapActivity
- 5. Recupera COM ProgID da exe senza registrarlo
- 6. Impossibile eseguire il file exe C++ compilato
- 7. Eseguire un EXE da una directory diversa?
- 8. Invoke EXE dal file batch * senza * attendere
- 9. Avere URL senza estensione .aspx
- 10. URL SiteCore senza estensione .aspx
- 11. Stream HTTP senza estensione in MPMoviePlayerController
- 12. Eseguire la soluzione exe dopo l'installazione utilizzando installshield
- 13. Come eseguire il file di installazione (* .exe) senza utilizzare il file MSI?
- 14. Symfony2 - Come eseguire una richiesta esterna
- 15. Definire la relazione senza chiave esterna
- 16. Elimina chiave esterna senza nome in MySql
- 17. Incorporare una pagina esterna senza un Iframe?
- 18. Eseguire sqlcmd senza aver installato SQL Server
- 19. Come eseguire un exe su un evento di post build
- 20. Come eseguire exe su PC remoto usando psexec
- 21. Come eseguire i file exe in NSIS Script?
- 22. Eseguire la riga di comando interattiva exe utilizzando C#
- 23. Eseguire un assembly .exe da un buffer in C
- 24. Trova e rinomina i file senza estensione?
- 25. URL di corrispondenza Regex senza estensione file
- 26. Pagine Web ASP.NET senza estensione file aspx
- 27. Pagine statiche S3 senza estensione .html
- 28. Inserisci collegamenti senza estensione file (.php)
- 29. Estensione Batarang senza risultati di qualsiasi tipo
- 30. È possibile eseguire il rendering di un file senza estensione .jsp come JSP?
bella spiegazione :-) – Chad