IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
enes.vint
Člen
Avatar
enes.vint:4.5.2014 21:43

Ahoj,

potykam se se zvlastnim a asi i jednoduchym problemem. Mam jednu slozku, ve ktere mam aplikaci + dalsi slozku se soubory. Potrebuji po nastaveni parametru v aplikaci otevrit soubor s priponou .exe ze slozky, ale nemohu prijit na to jak. Pres aplikaci ukladam soubory .txt klasicky, StreamWriter("sloz­ka/soubor.txt");. Kdyz se ale pokusim soubor otevrit - Process.Start("sloz­ka/soubor.exe");, hodi to chybu. Docetl jsem se, ze na to slouzi neco jako WorkingDirectory, ale nevim, jak to pouzit.

 
Odpovědět
4.5.2014 21:43
Avatar
Odpovídá na enes.vint
Luboš Běhounek Satik:4.5.2014 22:11

Jakou chybu to hlasi?

Nahoru Odpovědět
4.5.2014 22:11
https://www.facebook.com/peasantsandcastles/
Avatar
enes.vint
Člen
Avatar
enes.vint:4.5.2014 22:20

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)
 
Nahoru Odpovědět
4.5.2014 22:20
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na enes.vint
Gramli:4.5.2014 22:35

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.

Editováno 4.5.2014 22:37
Nahoru Odpovědět
4.5.2014 22:35
Kdo to říká ten to je...
Avatar
enes.vint
Člen
Avatar
Odpovídá na Gramli
enes.vint:4.5.2014 22:39

O to nejde - pokud soubor neni ve slozce, jde spustit jednoduchym Process.Start("a­plikace.exe");. Jde o to, ze potrebuji spoustet tento soubor ze slozky a Process.Start("sloz­ka/aplikace.e­xe") nefunguje. Zaroven to nesmi byt uplna cesta k souboru (C:/users/uzi­vatel...), jelikoz se bude s aplikaci hybat z pocitace do pocitace.

 
Nahoru Odpovědět
4.5.2014 22:39
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na enes.vint
Gramli:4.5.2014 22:46

Tak přidej k tomu tvému spouštění:

aplikace.FileName = "aplikace.exe";

Já si tu vyjímku špatně přečetl :D Nemáš uveden název souboru.

Nahoru Odpovědět
4.5.2014 22:46
Kdo to říká ten to je...
Avatar
Gramli
Tvůrce
Avatar
Gramli:4.5.2014 22:48

jinak složku ve ktré je exáč můžeš zjistit

string path = Environment.CurrentDirectory();
Nahoru Odpovědět
4.5.2014 22:48
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
Luboš Běhounek Satik:4.5.2014 23:00

To nemusí být vždy pravda, i když většinou to fungovat bude.

Tohle bude fungovat vždy:

Path.GetDirectoryName(Application.ExecutablePath)
Nahoru Odpovědět
4.5.2014 23:00
https://www.facebook.com/peasantsandcastles/
Avatar
enes.vint
Člen
Avatar
enes.vint:4.5.2014 23:06

Funguje jako zazrak, dekuju.

 
Nahoru Odpovědět
4.5.2014 23:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.