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 ?
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 - 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 - 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.