Moskus Skrevet 14. oktober 2010 Del Skrevet 14. oktober 2010 (endret) På grunn av omstendigheter utenfor min kontroll må jeg lage en "kontroll-applikasjon" av et program som kun kan la seg kompilere som et kommandolinjeverktøy (C# spotlib for dem som er interessert). Og jeg fant denne artikkelen: http://www.devx.com/...ticle/7914/1954 og den forklarer greit nok hva jeg trenger. Men jeg trenger litt mer. Jeg må kunne skrive flere kommandoer i rekkefølge og lese ut flere ganger uten å måtte lukke programmet. Jeg har kommet så langt: Dim p As Process Dim sIn As IO.StreamWriter Dim sOut As IO.StreamReader Dim sErr As IO.StreamReader Private Sub Connection_Open() p = New Process() p.StartInfo.FileName = "cmd.exe" p.StartInfo.UseShellExecute = False p.StartInfo.CreateNoWindow = True p.StartInfo.RedirectStandardInput = True p.StartInfo.RedirectStandardOutput = True p.StartInfo.RedirectStandardError = True p.Start() sIn = p.StandardInput sIn.AutoFlush = True sOut = p.StandardOutput sErr = p.StandardError End Sub Private Sub Connection_Close() If Not p.HasExited Then p.Kill() End If sIn.Close() sOut.Close() sErr.Close() p.Close() p = Nothing End Sub Private Function ExecuteCommand(ByVal cmd As String) As String Dim ret As String = String.Empty sIn.Write(cmd & System.Environment.NewLine) While sOut.Peek > -1 Dim line As String = sOut.ReadLine & ControlChars.NewLine Debug.WriteLine(line) ret &= line End While Return ret End Function Jeg prøvde med sOut.ReadToEnd men den slutter aldri å lese... Jeg får bare lest ut fra toppen hver gang, og jeg vet heller ikke når jeg kan slutte å lese. Er det noen som har et godt tips? Endret 14. oktober 2010 av Moskus Lenke til kommentar
GeirGrusom Skrevet 15. oktober 2010 Del Skrevet 15. oktober 2010 (endret) Bruk ReadAsyncLine (eller hva den heter) istedet. Edit: siden du ikke har noen direkte kontroll over hvordan programmet oppfører seg, er dette egentlig eneste fornuftige måten å gjøre det på. ReadToEnd leser helt til programmet er ferdig med å kjøre, som funker fint for net.exe eller lignende, men fullstendig uegnet for programmer som kjører over lengre tid. Endret 15. oktober 2010 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå