SLODUG
Spletno mesto uporabniške skupine slovenskih razvijalcev programskih rešitev

Klic aplikacije z argumenti

ocenilo 0 uporabnikov
Rešeno (preverjeno) Ta prispevek ima 1 preverjen odgovor | 3 odgovorov | 1 sledilec

Mitja objavljeno v 03-05-2010 9:27 | Zabeleženo

Pozdravljeni,

imam problem z zagonom aplikacije z argumenti. Za primer : če imam v mapi kjer se nahaja aplikacija batch file je klic aplikacije preko batch-a sledeč :  ir_read Pack1.dat,1,5,1,1,1,1,0,0,0,2

Klic preko c# pa imam sedaj sestavljen takole :

                    Process proc = new Process();

                    tempPathExe = @"C:\test\";  
                    proc.EnableRaisingEvents = true;
                    proc.StartInfo.ErrorDialog = true;                   
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.WorkingDirectory = tempPathExe;
                    proc.StartInfo.FileName = tempPathExe + "IR_Read.exe";                   
                    proc.StartInfo.Arguments = "Pack1.dat,1,5,1,1,1,1,0,0,0,2";                   
                    proc.Start();

Pa se nekje zatakne. Če je klic brez argumentov se aplikacija odpre, ko pa so vključeni zraven argumenti, pa se aplikacija obesi.

Kaj delam narobe ?

LP, Mitja

Rešeno (preverjeno) Preverjen odgovor

Verified by Mitja

Našel napako.

Process proc = new Process();

                    tempPathExe = @"C:\test\";     @"C:\test"; na koncu ne sme biti \
                    proc.EnableRaisingEvents = true;
                    proc.StartInfo.ErrorDialog = true;                   
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.WorkingDirectory = tempPathExe;
                    proc.StartInfo.FileName = tempPathExe + "IR_Read.exe";      tempPathExe + "\\IR_Read.exe";                  
                    proc.StartInfo.Arguments = "Pack1.dat,1,5,1,1,1,1,0,0,0,2";                   
                    proc.Start();

LP, Mitja

Vsi odgovori

Ojla!

Koda izgleda čisto kul. Se obesi pri branju parametrov ali v samem klicu? Izpisuj si nekam al pa debugiraj proces, da vidiš, kje odleti.

Predlagam pa tudi, da uporabiš ProcessStartInfo class, kjer boš mel malce več kontrole.

Lp, Bojan

Mitja V odgovor na 03-05-2010 12:37 | Zabeleženo

Sem že poizkusil tudi preko ProcessStartInfo.

Aplikacija se v ozadju požene(jo vidim med procesi), ampak izgleda da ji atributi nekaj ne pašejo, ker ne naredi kar bi moglo, ampak se enostavno obesi.

Ampak klic preko batch file-a z popolnoma istimi atributi se pa uspešno izvede(batch zagnan ročno). Je pa zanimivo to, da sem pa poizkusil batch zagnati iz kode (process.start()), pa vseeno ne dela. Če pa isti batch poženem ročno(dvoklik), pa vse brez problema.

LP, Mitja
Verified by Mitja

Našel napako.

Process proc = new Process();

                    tempPathExe = @"C:\test\";     @"C:\test"; na koncu ne sme biti \
                    proc.EnableRaisingEvents = true;
                    proc.StartInfo.ErrorDialog = true;                   
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.WorkingDirectory = tempPathExe;
                    proc.StartInfo.FileName = tempPathExe + "IR_Read.exe";      tempPathExe + "\\IR_Read.exe";                  
                    proc.StartInfo.Arguments = "Pack1.dat,1,5,1,1,1,1,0,0,0,2";                   
                    proc.Start();

LP, Mitja
Stran 1 od 1 (4 predmetov) | RSS
© 2004-2008 SLODUG
Powered by Community Server (Commercial Edition), by Telligent Systems