PDA

View Full Version : استفاده دستور cmd در C#



vahidkashefian
سه شنبه 21 اردیبهشت 1389, 16:42 عصر
سلام

دوستان چگونه میشه از دستورات CMD در سی شارپ استفتده کرد؟

مثلا من میخام از طریق آی پی با دستور arp -a مک آدرس رو بگیرم

لطفا کمک کنید مرسی:بوس:

hamidreza20
سه شنبه 21 اردیبهشت 1389, 18:07 عصر
سلام دوست عزیز
اگر یه سر به بخش 1001 نکته مفید در بالای بخش می زدی بد نبود...

ولی برای این منظور از دستور زیر استفاده می شود :

System.Diagnostics.Process.Start("cmd");

این تابع 5 شکل دارد که برای اجرای دستورات ، برنامه ها و ... به کار می رود . می تونید دستورتون رو توش بنویسید. فقط اگر به همراه پارامتر است باید از شکل دو بخشی و یا ... استفاده کنید.

التماس دعا...

vahidkashefian
سه شنبه 21 اردیبهشت 1389, 21:47 عصر
سلام دوست عزیز
اگر یه سر به بخش 1001 نکته مفید در بالای بخش می زدی بد نبود...

ولی برای این منظور از دستور زیر استفاده می شود :

System.Diagnostics.Process.Start("cmd");

این تابع 5 شکل دارد که برای اجرای دستورات ، برنامه ها و ... به کار می رود . می تونید دستورتون رو توش بنویسید. فقط اگر به همراه پارامتر است باید از شکل دو بخشی و یا ... استفاده کنید.

التماس دعا...


راستش میخام یه فرم بسازم بعد یه دکمه ای باشه وقتی میزنم بگه این آی پیه و اینم آدرس فیزیکی

میشتونی کمک کنی؟خدا خیرت بده

arefba
سه شنبه 21 اردیبهشت 1389, 22:41 عصر
string remoteMachineNameOrIP = "127.0.0.1";
int timeOut = 5;
Ping ping = new Ping();
// Pinging remote maching
PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
// Displaying the result
StringBuilder sb = new StringBuilder();
sb.Append("Address:" + reply.Address.ToString());
sb.Append("\nStatus:" + reply.Status.ToString());
sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
txtText = sb.ToString();



برای پینگ کردن

arefba
سه شنبه 21 اردیبهشت 1389, 22:41 عصر
برای آی پی هم دستورش رو سرچ کنی می بینی

vahidkashefian
چهارشنبه 22 اردیبهشت 1389, 07:24 صبح
string remoteMachineNameOrIP = "127.0.0.1";
int timeOut = 5;
Ping ping = new Ping();
// Pinging remote maching
PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
// Displaying the result
StringBuilder sb = new StringBuilder();
sb.Append("Address:" + reply.Address.ToString());
sb.Append("\nStatus:" + reply.Status.ToString());
sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
txtText = sb.ToString();





برای پینگ کردن


سلام الان اینکه دادی چیکار میکنه؟میشه توضیح بدی؟
من میخام بگه این آی پی اینم مک آدرس

hamidreza20
چهارشنبه 22 اردیبهشت 1389, 07:44 صبح
سلام دوست عزیز

با استفاده از این کد می تونی یک آی پی رو پینگ کنی ببینی روشنه یا خاموش. یه کم سرچ کنی به چیزای زیادی می رسی
کد #C :


string remoteMachineNameOrIP = textBox1.Text;
int timeOut = 5;
try
{
Ping ping = new Ping();
// Pinging remote maching
PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
// Displaying the result
StringBuilder sb = new StringBuilder();
sb.Append("Address:" + reply.Address.ToString());
sb.Append("\nStatus:" + reply.Status.ToString());
sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
MessageBox.Show(sb.ToString(), "Ping Result: " + remoteMachineNameOrIP);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

vahidkashefian
چهارشنبه 22 اردیبهشت 1389, 11:03 صبح
سلام دوست عزیز

با استفاده از این کد می تونی یک آی پی رو پینگ کنی ببینی روشنه یا خاموش. یه کم سرچ کنی به چیزای زیادی می رسی
کد C#‎ :


string remoteMachineNameOrIP = textBox1.Text;
int timeOut = 5;
try
{
Ping ping = new Ping();
// Pinging remote maching
PingReply reply = ping.Send(remoteMachineNameOrIP, timeOut);
// Displaying the result
StringBuilder sb = new StringBuilder();
sb.Append("Address:" + reply.Address.ToString());
sb.Append("\nStatus:" + reply.Status.ToString());
sb.Append("\nRoundtripTime:" + reply.RoundtripTime.ToString());
MessageBox.Show(sb.ToString(), "Ping Result: " + remoteMachineNameOrIP);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}



میشه یه شماره بدی باهات تماس بگیریم؟برام پی ام کنید لطفا

hamidreza20
چهارشنبه 22 اردیبهشت 1389, 11:29 صبح
میشه یه شماره بدی باهات تماس بگیریم؟برام پی ام کنید لطفا

دوست عزیز هر کاری دارید هم اینجا بگید براتون من یا دوستان عزیز و اساتید محترم انجام می دن

من اصلا تویه این سایت فعالیت تجاری یا تبلغاتی نمی کنم . هدفم فقط فقط بالا بردن سطح دانش خود و دوستان عزیز است .

یاد بده تا یاد بگیری...

التماس دعا...

vahidkashefian
چهارشنبه 22 اردیبهشت 1389, 11:56 صبح
دوست عزیز هر کاری دارید هم اینجا بگید براتون من یا دوستان عزیز و اساتید محترم انجام می دن

من اصلا تویه این سایت فعالیت تجاری یا تبلغاتی نمی کنم . هدفم فقط فقط بالا بردن سطح دانش خود و دوستان عزیز است .

یاد بده تا یاد بگیری...

التماس دعا...


شما که این هدف بسیار خوب رو دارید به من کمک کنید من میخام یه فرم با سی شارپ بزنم که وقتی یه دکمه میزنی بگه این آی پی هست اینم مک ادرس یعنی از دستور arp -a استفاده کنه

اگه فایل پروزه رو بدی که عالیه چون کد که دادین رو میزارم تو برنامه ارور میده منم مبتدی هستم سر در نمیارم

hamidreza20
چهارشنبه 22 اردیبهشت 1389, 14:14 عصر
شما که این هدف بسیار خوب رو دارید به من کمک کنید من میخام یه فرم با سی شارپ بزنم که وقتی یه دکمه میزنی بگه این آی پی هست اینم مک ادرس یعنی از دستور arp -a استفاده کنه

اگه فایل پروزه رو بدی که عالیه چون کد که دادین رو میزارم تو برنامه ارور میده منم مبتدی هستم سر در نمیارم

دوست عزیز براتون نوشتم فقط طبق مراحل زیر پیش بروید :

اول اینکه برای این منظور باید از توابع API ویندوز استفاده نمود. اونم استفاده از iphlpapi.dll

من برای این کار یک کلاس به نام Mac نوشتم و اونجا از dll فوق استفاده کردم ...

برنامه رو دانلود کنید ... خداییش 1 ساعت وقتم رو گرفت .... چه کار کنم عاشق برنامه نویسیم..

در برنامه یک تکست باکس است که باید آدرس ip سیستم رو توی اون وارد کنی تا mac اون رو برگردونه ...
التماس دعا...

vahidkashefian
چهارشنبه 22 اردیبهشت 1389, 22:37 عصر
دوست عزیز براتون نوشتم فقط طبق مراحل زیر پیش بروید :

اول اینکه برای این منظور باید از توابع API ویندوز استفاده نمود. اونم استفاده از iphlpapi.dll

من برای این کار یک کلاس به نام Mac نوشتم و اونجا از dll فوق استفاده کردم ...

برنامه رو دانلود کنید ... خداییش 1 ساعت وقتم رو گرفت .... چه کار کنم عاشق برنامه نویسیم..

در برنامه یک تکست باکس است که باید آدرس ip سیستم رو توی اون وارد کنی تا mac اون رو برگردونه ...
التماس دعا...

بسیار متشکرم از شما خدا خیرتون بده فقط در مورد کلاس میخاستم یه توضیح کوچولو بدین:تشویق:

hamidreza20
جمعه 24 اردیبهشت 1389, 13:27 عصر
بسیار متشکرم از شما خدا خیرتون بده فقط در مورد کلاس میخاستم یه توضیح کوچولو بدین:تشویق:

سلام دوست عزیز ببخشید دیر جواب می دم ....

نیازی به توضیح نداره . یه کلاسی تعریف شده که در ابتدا از توابع API ویندوز استفاده می شه اگر راجع به API چیزی نمی دونید بهتره جستجو کنید . بعد با استفاده از یکی از متدهای او DLL کار مورد نظر انجام می شه. البته اگه MSDN روی سیستم شما نصب باشه روی هر کدام از توابع که قرار بگیرید با زدن F1 به اطلاعات ارزشمندی دست پیدا می کنید.

التماس دعا....

vahidkashefian
دوشنبه 27 اردیبهشت 1389, 07:52 صبح
متاسفانه و استودیو 2008 دارم ولی MSDN نداره
:ناراحت:
شما از چه ورژنی استفاده می کنید؟

hamidreza20
سه شنبه 28 اردیبهشت 1389, 10:41 صبح
متاسفانه و استودیو 2008 دارم ولی MSDN نداره
:ناراحت:
شما از چه ورژنی استفاده می کنید؟

دوست عزیز من از نسخه 2008 و 2010 استفاده می کنم ولی برنامه رو برای شما با 2008 نوشتم.

در ضمن باید MSDN رو به صورت جداگانه نصب کنید.

یک نکته دیگه از سایت http://www.codeproject.com می تونی کدهای ارزشمندی رو پیدا کنی...

التماس دعا...

vahidkashefian
سه شنبه 04 خرداد 1389, 10:53 صبح
private static extern int SendARP(int DestIP, int SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen);
public string getmac(string ip)
{
System.Net.IPAddress TempAD = System.Net.IPAddress.Parse(ip);
byte[] ab = new byte[6];
int len = ab.Length;
// This Function Used to Get The Physical Address
int r = SendARP((int)TempAD.Address, 0, ab, ref len);
string mac = BitConverter.ToString(ab, 0, 6);
//msgbox(mac);
return mac;

این خطوط رو میشه یرام توضیح بدین؟
هر خط یه توضیح بدین خیلی متشکرم

vahidkashefian
چهارشنبه 05 خرداد 1389, 09:06 صبح
در صورت خالی بودن تکس باکس میخام ارور بده ولی این کد رو مینویسم اجرا نمیشه دلیلش چیه؟

{
if (textBox1.Text == null)
MessageBox.Show("vared kon ip");
}

mohsensaghafi
چهارشنبه 05 خرداد 1389, 09:21 صبح
در صورت خالی بودن تکس باکس میخام ارور بده ولی این کد رو مینویسم اجرا نمیشه دلیلش چیه؟

{
if (textBox1.Text == null)
MessageBox.Show("vared kon ip");
}


دوست عزیز سلام.
شرط خالی بودن Text Box به این صورت هستش.

if (text1.text == "") {

ehsan248
چهارشنبه 05 خرداد 1389, 09:32 صبح
http://barnamenevis.org/forum/showthread.php?t=220488

vahidkashefian
چهارشنبه 05 خرداد 1389, 11:10 صبح
دوست عزیز سلام.
شرط خالی بودن Text Box به این صورت هستش.

if (text1.text == "") {

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

hamidreza20
چهارشنبه 05 خرداد 1389, 12:06 عصر
آخه مشکل اینجاس که بعد از اینکه ارور خالی بودن رو میده یعنی یه پنجره میاد که میگه آی رو وارد کن یه پنجره ارور میاد خودتون اگه تست کنین می فهمین.من فهمیدم که این جای خاالی رو فک میکنه یه آی پی و پیام میده این نمی تونه یه آی پی باشه.در واقع من میخام این ارور دومی رو نده:ناراحت:

سلام دوست عزیز

ببخشید دیر جواب می دم.

برای اینکه برنامه هنگامی که آی پی وارد نشد یا آی پی معتبر نبود هنگ نکند باید از دستور try استفاده کرد . برای این منظور کد زیر را جایگزین کد باتن فرم قرار بده .

private void button1_Click(object sender, EventArgs e)
{
try
{
MAC addrsmac = new MAC();
MessageBox.Show(addrsmac.getmac(textBox1.Text));
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}



}
التماس دعا...

mohsensaghafi
پنج شنبه 06 خرداد 1389, 14:35 عصر
آخه مشکل اینجاس که بعد از اینکه ارور خالی بودن رو میده یعنی یه پنجره میاد که میگه آی رو وارد کن یه پنجره ارور میاد خودتون اگه تست کنین می فهمین.من فهمیدم که این جای خاالی رو فک میکنه یه آی پی و پیام میده این نمی تونه یه آی پی باشه.در واقع من میخام این ارور دومی رو نده:ناراحت:

سلام دوست عزیز.
می شه کدت رو بزاری. آخه همچین errorی منطقی ه نظر نمی رسه.
یا علی!

vahidkashefian
سه شنبه 11 خرداد 1389, 07:46 صبح
اینم کد.میخام یه مستند هم از کدهاش بنویسم کمکم میکنی؟

hamidreza20
سه شنبه 11 خرداد 1389, 07:56 صبح
اینم کد.میخام یه مستند هم از کدهاش بنویسم کمکم میکنی؟

سلام دوست عزیز

کد رو بالا گذاشتم براتون. از try استفاده کنید . در ضمن می خواهید چیو مستند کنید؟؟؟؟ در مورد چیزی سوال دارید؟؟؟؟

vahidkashefian
سه شنبه 11 خرداد 1389, 19:51 عصر
سلام دوست عزیز

کد رو بالا گذاشتم براتون. از try استفاده کنید . در ضمن می خواهید چیو مستند کنید؟؟؟؟ در مورد چیزی سوال دارید؟؟؟؟


درود خدا بر شما آقای حمیدرضا اینو همیشه یادم میمونه اگه شما نبودی 3 نمره من پریده بود.مرسی از رفع ارور اما سوالات من

چرا برنامه ارور میداد؟
چرا از دستور Try استفاده شد؟
با دستور Messagebox.show نمی شد نمایش داد؟

والا استاد گفته تمام خطوط کد رو باید توضیح بدین که چجوریه چیکار میکنه.هر خط یه توضیح.منم تازه کارم درست نمیدونم چی بنویسم.هم کلاس هم فرمشو:گریه::ناراحت::ناراحت:

hamidreza20
چهارشنبه 12 خرداد 1389, 08:37 صبح
درود خدا بر شما آقای حمیدرضا اینو همیشه یادم میمونه اگه شما نبودی 3 نمره من پریده بود.مرسی از رفع ارور اما سوالات من

چرا برنامه ارور میداد؟
چرا از دستور Try استفاده شد؟
با دستور Messagebox.show نمی شد نمایش داد؟

والا استاد گفته تمام خطوط کد رو باید توضیح بدین که چجوریه چیکار میکنه.هر خط یه توضیح.منم تازه کارم درست نمیدونم چی بنویسم.هم کلاس هم فرمشو:گریه::ناراحت::ناراحت:

خواهش می کنم آقا وحید گل.

برنامه به خاطر این ارور می داد که اگر مثلا به جای آدرس آی پی مثلا کاراکتر حرفی وارد می شد یا تکست باکس خالی می موند یا یک آدرس آی پی نامعتبر وارد می شد ( مثلا 127.1.1478.1549 ) نمی توانست عمل arp را انجام بده.

از دستور Try برای پردازش استثناء استفاده می شود که شما می توانید برای توضیحات تکمیلی به تاپیک زیر سری بزنید :
http://barnamenevis.org/forum/showpost.php?p=912753&postcount=20

منظور شما از این که با دستور MessageBox نمی شد نمایش داد یعنی چی؟؟؟؟؟

تو پیام خصوصی براتون آنچه را که خواسته بودید ارسال کردم.

التماس دعا....

vahidkashefian
سه شنبه 18 خرداد 1389, 22:56 عصر
با تشکر
حالا مستند کد رو چی کنم؟

vahidkashefian
چهارشنبه 26 خرداد 1389, 09:24 صبح
کسی نمیتونه توضیحی در مورد این کد بده؟:گریه:

hamidreza20
چهارشنبه 26 خرداد 1389, 10:03 صبح
کسی نمیتونه توضیحی در مورد این کد بده؟:گریه:

سلام وحیدجان
چه توضیحی لازم داری من که هرچی خواستی گفتم؟؟؟

vahidkashefian
چهارشنبه 26 خرداد 1389, 22:43 عصر
سلام وحیدجان
چه توضیحی لازم داری من که هرچی خواستی گفتم؟؟؟

سلام
این توضیحی که شما دادین خلاصه واره استاد ما گفته خط به خط باید بگین چی شده:عصبانی++:

hamidreza20
پنج شنبه 27 خرداد 1389, 11:01 صبح
سلام
این توضیحی که شما دادین خلاصه واره استاد ما گفته خط به خط باید بگین چی شده:عصبانی++:

سلام دوست عزیز

براتون مستند لازم را در یک فایل word تهیه کردم و پیوست نمودم . در آن کلاس تعریف شده MAC را توضیح کامل دادم...
التماس دعا....

vahidkashefian
یک شنبه 30 خرداد 1389, 11:06 صبح
سلام دوست عزیز

براتون مستند لازم را در یک فایل word تهیه کردم و پیوست نمودم . در آن کلاس تعریف شده MAC را توضیح کامل دادم...
التماس دعا....


با تشکر فراوان از شما آقا حمید من یه پیغام خصوصی دادم بهتون خوندید؟

hamidreza20
یک شنبه 30 خرداد 1389, 14:29 عصر
با تشکر فراوان از شما آقا حمید من یه پیغام خصوصی دادم بهتون خوندید؟

خواهش می کنم . جوابتون رو دادم دوست گرامی...

التماس دعا...

vahidkashefian
دوشنبه 31 خرداد 1389, 13:56 عصر
خواهش می کنم . جوابتون رو دادم دوست گرامی...

التماس دعا...

اگه میشه صندوقتون رو یه کوچولو چک کنید:بامزه:

danialafshari
جمعه 14 آبان 1389, 02:24 صبح
شما که این هدف بسیار خوب رو دارید به من کمک کنید من میخام یه فرم با سی شارپ بزنم که وقتی یه دکمه میزنی بگه این آی پی هست اینم مک ادرس یعنی از دستور arp -a استفاده کنه

اگه فایل پروزه رو بدی که عالیه چون کد که دادین رو میزارم تو برنامه ارور میده منم مبتدی هستم سر در نمیارم

خوب شما می تونید از این کد استفاذه کنید
using System.Diagnostics;
---------
private static string CaptureCommandPromptOutput(string command, string argument)
{
ProcessStartInfo info = new ProcessStartInfo(command, argument);
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.CreateNoWindow = true;
Process p = new Process();
p.StartInfo = info;
p.Start();
return p.StandardOutput.ReadToEnd();
}
--------------
مثال ها :
richTextBox1.Text = CaptureCommandPromptOutput("cmd", "/c dir");
-----
richTextBox1.Text = CaptureCommandPromptOutput("Ping", "127.0.0.1");



امیدوارم بدردتون خورده باشه

danialafshari
جمعه 14 آبان 1389, 02:27 صبح
از این کد هم می تونید برای در اوردن Ip و مک آدرس استفاده کنید :

using System.Net;
------------
برای سیستم لوکال :
کد:
IPAddress[] ipList = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in ipList )
MessageBox.Show(ip.ToString());
-----------------
برای یک سیستم خاص با دانستن نام آن :
کد:
IPAddress[] ipList = Dns.GetHostAddresses("Sinpin");
foreach (IPAddress ip in ipList )
MessageBox.Show(ip.ToString());

mohammas
پنج شنبه 10 مرداد 1392, 00:27 صبح
سلام میدونم این تایپک قدیمیه اما یه سوال مرتبط دارم ممنون میشم راهنمایی کنید

چطوری میشخ از خط فرمان cmd در c# استفاده کرد مثلا دستورات attrib

من خیلی سرچ کردم منطقی ترین کدی که بر خوردم این بود اما فقط cmd رو باز میکنه و فرمان اجرا نمیشه

string strCmdText;
strCmdText = "فرمان cmd";
System.Diagnostics.Process.Start("CMD.exe",Abit1);