PDA

View Full Version : ارتباط با cmd ويندوز



amir-yeketaz
یک شنبه 18 مهر 1389, 14:39 عصر
سلام ...
من ميخوام در يه پرو‍‍‍‍ِِژه بتونم به cmd ويندوز متصل بشم و بتونم يه دستوري رو در اون وارد كنم ...
بايد چيكار كنم؟؟؟!!!(اصلا آشنايي ندارم!)
اگه خودتون جوابشو ميدونين(يعني كوتاهه!) لطفا توضيح بدين !! ...
در غير اينصورت اگه ممكنه لينك بدين!

ممنون

sinashahab
یک شنبه 18 مهر 1389, 15:35 عصر
دلیل خاصی داره که می خوای هتما سی ام دی باشه؟

ببین این راه شاید به دردت بخوره . یه فایل به پسوند .bat بساز و توش کدتو بنویس

mrbm_2007
یک شنبه 18 مهر 1389, 17:17 عصر
یه مثال خیلی ساده



using System;
using System.Diagnostics;
namespace RedirectOutputExample{
class Program{
static void Main(){
Process p = new Process();
p.StartInfo = new ProcessStartInfo( "cmd", "/c \"dir c:\\\"" )
{
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(output);
Console.Read();

}}}

group45
یک شنبه 18 مهر 1389, 17:51 عصر
سلام
اینم یه مثال ساده




privatevoid btnPing_Click(object sender, EventArgs e)
{
System.Diagnostics.Process process1;
process1 = new System.Diagnostics.Process();
process1.EnableRaisingEvents = false;

string strCmdLine;
strCmdLine = "/C ping 192.168.1.1";
System.Diagnostics.Process.Start("CMD.exe", strCmdLine);
process1.Close();
}

mrbm_2007
یک شنبه 18 مهر 1389, 18:45 عصر
سلام
اینم یه مثال ساده




privatevoid btnPing_Click(object sender, EventArgs e)
{
System.Diagnostics.Process process1;
process1 = new System.Diagnostics.Process();
process1.EnableRaisingEvents = false;

string strCmdLine;
strCmdLine = "/C ping 192.168.1.1";
System.Diagnostics.Process.Start("CMD.exe", strCmdLine);
process1.Close();
}

پس خروجی cmd چی شد؟

r00tkit
یک شنبه 18 مهر 1389, 19:45 عصر
برای استفاده از خروجی یه پروسس از کد زیر استفاده کنید


process.StandardOutput.ReadLine()کد های زیر رو هم نگاه کنید




process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
pprocess.OutputDataReceived += new DataReceivedEventHandler(outputreceived);
pprocess.ErrorDataReceived += new DataReceivedEventHandler(errorreceived);

amir-yeketaz
یک شنبه 18 مهر 1389, 21:24 عصر
ممنون از همه (الان برا همتون تشکر میزنم!!!) ... من این نمونه کدها رو سرچ کردم و خیلی جاها دیدم ...
ولی کلا یه حالت گنگی داره و دوست دارم که کامل با کلاس process آشنا بشم ...

اگه ممکنه یه مقاله یا یه پی دی افی چیزی معرفی کنین که من بتونم با این کلاس Process آشنا بشم (البته اگه بهتر از msdn باشه ...)

cardano7
پنج شنبه 29 مهر 1389, 05:07 صبح
ممنون از همه (الان برا همتون تشکر میزنم!!!) ... من این نمونه کدها رو سرچ کردم و خیلی جاها دیدم ...
ولی کلا یه حالت گنگی داره و دوست دارم که کامل با کلاس process آشنا بشم ...

اگه ممکنه یه مقاله یا یه پی دی افی چیزی معرفی کنین که من بتونم با این کلاس Process آشنا بشم (البته اگه بهتر از msdn باشه ...)

شما با این دستور در حقیقت میگید که یک برنامه اجرا بشه و به اون برنامه یک سری آرگومان هم میدید. حالا می تونید اون برنامه رو cmd انتخاب کنید و دستور cmd رو هم به عنوان آرگومان این برنامه. حالت های مختلفی هم برای اجرا هست. اینکه برنامه ی شما تا خاتمه ی اون برنامه ادامه پیدا کنه یا نه و برخی دیگر از option ها رو می شه set کرد.

این هم دو تا لینک:

http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/0733fde9-8eac-4487-b76f-14814d5a28a9

http://msdn.microsoft.com/en-us/library/h6ak8zt5.aspx

امیدوارم کمک کنه