Avatar billede darknezzdell Nybegynder
19. september 2006 - 15:25 Der er 6 kommentarer og
1 løsning

Læsning fra command i windows

Hej

Jeg er forholdsvis ny i c#, og vil gerne lave en applikation der henter output fra cmd i windows. Et eksempel kunne være, at man klikker på en knap, og i en tekstboks vises nu output fra cmd kommandoen ipconfig. Hvordan får jeg indlæst alt output fra kommando prompten?
Avatar billede arne_v Ekspert
19. september 2006 - 15:36 #1
jeg tror at det er svaert at hapse generelt fra et CMD vindue

men hvis du selv starter kommandoen med Process.Start saa er det nemt
(den returnerer et Process objekt hvor du kan hente input og output fra)
Avatar billede darknezzdell Nybegynder
20. september 2006 - 13:22 #2
Jeg har nu prøvet mig lidt frem:

Process tmp = new Process();
tmp.StartInfo("ipconfig", "/all");
tmp.start();

der findes nu en mulighed der hedder tmp.outputdata men jeg kan ikke helt gennemskue hvad jeg skal gøre for at få output fra tmp processen ind i mit tekst felt.
Avatar billede arne_v Ekspert
20. september 2006 - 13:32 #3
du kan læse fra StandardOutput property'en
Avatar billede darknezzdell Nybegynder
20. september 2006 - 13:56 #4
ja jeg kan regne ud at jeg skal læse fra Standardoutput indtil der ikke er mere i bufferen.

while(tmp.StandardOutput.EndOfSteam == false)
{
  tekstfelt.text = tmp.Standardoutput.readline().Tostring();
}

Dette virker ikke efter hensigten, da jeg får en fejl om at Standardoutput ikke er blevet redirected eller at processen ikke er startet.

Hvad gør man så?
Avatar billede arne_v Ekspert
21. september 2006 - 00:57 #5
man skal lige instruere den lidt mere

her er et eksempel:

            ProcessStartInfo psi = new ProcessStartInfo();
            psi.FileName = "ping";

            psi.Arguments = "192.168.0." + no;
            psi.CreateNoWindow = true;
            psi.UseShellExecute = false;
            psi.RedirectStandardOutput = true;
            Process p = Process.Start(psi);
            StreamReader sr = p.StandardOutput;
            string line;
            while((line = sr.ReadLine()) != null)
            {
                res += line;
            }
            sr.Close();
            p.Close();
Avatar billede darknezzdell Nybegynder
17. oktober 2006 - 10:53 #6
arne du smider bare et svar, det virker perfekt!
Avatar billede arne_v Ekspert
17. oktober 2006 - 13:08 #7
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester