יום רביעי, 9 בפברואר 2011

Command Line With C#


בחרתי לכתוב תוכנית שמבוססת על תוכניות של ה Command Line - Console שקשורות לרשתות, כלי אבחון פשוט שמראה לנו את הנתונים של הרשת - משתמשים, ספריות, מחשבים וחיבורים, מצד אחד כלי מאוד לגיטימי כל אחד רוצה לנתר את הרשת שלו, אבל מצד שני ניתן לבצע פקודות ללא צורך במשתמש... לשתול אותן בוירוסים או בתולעים.
התוכניות שאיתן נעבוד קיימות בכל הגרסאות של מערכת ההפעלה מסוג Windows, לכן אני לא צריך לדאוג לעדכן אותן בכל גרסה והן תמיד יעבדו, בסופו של דבר אנחנו מפעילים Process שמריץ את התוכנית ומחזיר את הפלט שלה בסיומה.

תחילה נעבור על הפקודות שבחרתי:
Netstat
Ping
Arp
Net
     User
     Share
     Start
     View
      Use



על מנת להריץ את הפקודה נשתמש ב Process שנעמיס עליו אובייקט מסוג ProcessStartInfo שמכיל את הפקודה והתנאים שהתוכנית מקבלת.

private void running_process()

{
   Process process = new Process();
 הצהרה על Process חדש.
  ProcessStartInfo info = new ProcessStartInfo("Command");
 שם התוכנית והמיקום שלה במקרה שלנו היא ב System32 ולכן זמינה בכל מקום.
  info.Arguments = "Command Args";
 התנאים של התוכנית.
  info.UseShellExecute = false;
האם להפעיל את התוכנית דרך ה Shell או ישירות מהקובץ.
   info.RedirectStandardOutput = true;
קבלת Output בצורה סינכרונית או א-סינכרונית מהתוכנית.
   info.CreateNoWindow = true;
האם ליצור חלון?
   process.StartInfo = info;
   process.Start();
ריצת התוכנית.
   string mystring = process.StandardOutput.ReadToEnd();
קבלת הפלט מהתוכנית
}
 
דוגמה:
 

אין תגובות:

הוסף רשומת תגובה