Avatar billede over-load Nybegynder
01. februar 2010 - 16:46 Der er 8 kommentarer og
2 løsninger

Command line funktioner.

Hvordan kan jeg tilgå kommandoer fra window's command line.
f.eks ping -t [gateway] i c#?
Avatar billede arne_v Ekspert
01. februar 2010 - 16:54 #1
Leder du efter namespace System.Diagnostics class Process method Start ?
Avatar billede arne_v Ekspert
01. februar 2010 - 16:56 #2
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 arne_v Ekspert
01. februar 2010 - 16:56 #3
For det konkret eksempel er der dog en bedre maade.

.NET 2.0 fik indbygget ping support:

        Ping p = new Ping();
        PingReply pr = p.Send("www.tv2.dk");
        if(pr.Status == IPStatus.Success)
        {
            Console.WriteLine("TV2 oppe (tid = " + pr.RoundtripTime + " ms)");
        }
        else
        {
            Console.WriteLine("TV2 nede");
        }
Avatar billede over-load Nybegynder
01. februar 2010 - 17:48 #4
kan ikke rigtigt få ProcessStartInfo til at virke, men ved at implementere System.Net.NetworkInformation; fungerer ping funktionen perfekt :)
Avatar billede arne_v Ekspert
01. februar 2010 - 18:44 #5
Hvad er problemet med Process Start ?
Avatar billede Syska Mester
01. februar 2010 - 20:41 #6
Lader til at være variablen "no" der ikke er defineret i dit eksemple Arne. Men kun et gæt ...

mvh
Avatar billede arne_v Ekspert
01. februar 2010 - 20:48 #7
Det var jo kun et kode fragment. I hele programmet bliver no talt op fra 1 til 254.
Avatar billede Syska Mester
01. februar 2010 - 21:29 #8
ja,

Men nu har jeg set flere herinde tror at alt er komplete eksempler :-)

Og da jeg ikke kender spørgeren, kunne jo det netop ske at være fejlen, da du også skriver at du ikke kan forstå hvad der ikke virker.

mvh
Avatar billede delphi Nybegynder
02. februar 2010 - 11:20 #9
Jeg læser dit spørgsmål lidt anderledes.  Det lyder på mig som om du ønsker adgang til de commandline argumenter, som dit program blev kaldt med.  Hertil kan du anvende "args" parameteren på din Main metode.
Her et lille demo jeg bankede sammen i hovedet (ikke testet for at være ærlig)

namespace ConsoleAppArguments {
  class Program {
    static void Main(string[] args) {
      int counter=1;
      Console.WriteLine(string.Format("Application is called with {0} arguments:", args.Length));
      foreach(string str in args) {
        Console.WriteLine(string.Format("Arg no {0} = {1}", counter++, str));
      }
      Console.WriteLine("Press return to terminate.");
      Console.ReadLine();
    }
  }
}
Avatar billede arne_v Ekspert
01. marts 2010 - 01:45 #10
Tid at få afsluttet her?

Og et svar fra mig.
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