Klic aplikacije z argumenti

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 ?

Avtor: Mitja, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

Mitja
Mitja - petek, 19. marec 2010

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();

Mitja
Mitja - petek, 05. marec 2010

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.

bojanv
bojanv - petek, 05. marec 2010

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.