Diskuze: Otevreni souboru .exe ve slozce
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Hodim sem ten kod s otviranim aplikace:
var aplikace = new ProcessStartInfo();
aplikace.WorkingDirectory = "slozka/aplikace.exe";
Process.Start(aplikace);
Kdyz debuguju ve Visual Studiu (slozku s aplikaci samozrejme mam v projectech) tak hlasi, ze soubor nebyl nalezen. Kdyz spoustim aplikaci normalne, hlasi tohle:
************** Text výjimky **************
System.InvalidOperationException: Proces nelze spustit, protože nebyl uveden název souboru.
v System.Diagnostics.Process.Start()
v System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
v Soukup_RP_Launcher.Form1.btLaunch_Click(Object sender, EventArgs e)
v System.Windows.Forms.Control.OnClick(EventArgs e)
v System.Windows.Forms.Button.OnClick(EventArgs e)
v System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
v System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
v System.Windows.Forms.Control.WndProc(Message& m)
v System.Windows.Forms.ButtonBase.WndProc(Message& m)
v System.Windows.Forms.Button.WndProc(Message& m)
v System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
v System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
v System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Podle té vyjímky to nenajde ten soubor.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "notepad.EXE";
startInfo.Arguments = f;
Process.Start(startInfo);
když použiješ tento zdroják a dáš start(Debug), tak ten "notedpad.EXE" musi byt ve slozce Debug. Zkus ten tvuj exe soubor dát do složky debug a použít tu moji část kódu.
O to nejde - pokud soubor neni ve slozce, jde spustit jednoduchym Process.Start("aplikace.exe");. Jde o to, ze potrebuji spoustet tento soubor ze slozky a Process.Start("slozka/aplikace.exe") nefunguje. Zaroven to nesmi byt uplna cesta k souboru (C:/users/uzivatel...), jelikoz se bude s aplikaci hybat z pocitace do pocitace.
Tak přidej k tomu tvému spouštění:
aplikace.FileName = "aplikace.exe";
Já si tu vyjímku špatně přečetl Nemáš uveden název
souboru.
To nemusí být vždy pravda, i když většinou to fungovat bude.
Tohle bude fungovat vždy:
Path.GetDirectoryName(Application.ExecutablePath)
Zobrazeno 9 zpráv z 9.