PDA

View Full Version : سوال: ارسال دستور به CMD



Unknownlive
یک شنبه 23 فروردین 1388, 10:40 صبح
من می خواهم در قسمتی از پروژه ام کاری بکنم که در cmd امکان پذیره و حالا می خواهم یک تکه کد مربوط به cmd را از طریق C# به CMD ارسال کنم.

NewFoxStudent
یک شنبه 23 فروردین 1388, 13:39 عصر
میتونید کداتون رو تویه یه فایل Bat ذخیره کنید و بعد از طریق برنامتون اجراش کنید

CYCLOPS
یک شنبه 23 فروردین 1388, 16:07 عصر
میشه یه توضیح در مورد جزئیاتش بدید ؟؟
منظورتون از ذخیره کدها همون دستورات CMD هست ؟؟

Happy_davood
یک شنبه 23 فروردین 1388, 16:51 عصر
اگه منظورتون اجرای دستورات در CommanLine هست باید از کلاس Process استفاده کنید .




System.Diagnostics.Proccess

Unknownlive
یک شنبه 23 فروردین 1388, 22:20 عصر
با تشکر از تمام کسانی که وقت گذاشتند ببینید من در قسمتی از برنامه می خواهم پسورد ادمین هر کامپیوتری را عوض کنم برای این کار می خواهم دستور net user را به کامند پرامپت ویندوز ارسال کنم تا اعمال شود در جواب یکی از دوستان عزیز هم من نمی توانم این دستور را در یک فایل Bat ذخیره کنم زیرا کاربر می تواند این فایل را با Notepad ویرایش کند و هر کد مخربی را جایگزین کند و در واقع امنیت برنامه زیر سوال میره

Unknownlive
سه شنبه 25 فروردین 1388, 17:33 عصر
بوق بوق کسی نیست جواب من بنده خدا را بده بووووووووق

backspace
سه شنبه 25 فروردین 1388, 17:56 عصر
سلام. من دقيق نمي دونم چكار بايد بكني ولي اگر قبلا اين رو توي CommandLine مي نوشتي و كار مي كرد الان بايد از Process استفاده كني.كتابش الان همراهم نيست. امشب كه رفتمك بايد نگاه كنم فردا بهت بگم چه جوري بكار ببري

salehbagheri
سه شنبه 25 فروردین 1388, 18:02 عصر
من كه اينجوري بعضي از كارهايي كه در Cmd داشتم رو راه مي انداختم!


Public Sub Cmd()
System.Diagnostics.Process.Start("Cmd")
SendKeys.Send("dir")
SendKeys.Send("{Enter}")
End Sub

mostafaaa
سه شنبه 25 فروردین 1388, 19:03 عصر
سلام دوست من
همونطور که اونایی که با VB.net کار کردن میدونن، توی VB یه متدی هست به نام Shell که با استفاده از اون میشه به راحتی Command ها رو اجرا کرد. برای اینکه از اون Function بتونید توی C# هم استفاده کنید، فقط کافیه که ریفرنس Microsoft.VisualBasic رو به پروژتون اضافه کنید تا بتونید از این کلاس استفاده کنید. پس برای مثال داریم :

using Microsoft.VisualBasic;
و شکل دستورمون :

Interaction.Shell("cmd /c ping 4.2.2.4", AppWinStyle.NormalFocus,true ,1);
یا علی

prankster
سه شنبه 25 فروردین 1388, 23:36 عصر
System.Diagnostics.Process.Start("net", "user [username] [password]");


به صورت کامل:



System.Diagnostics.ProcessStartInfo startInfo =
new System.Diagnostics.ProcessStartInfo()
{

FileName = "net",
Arguments = "user [username] [password]",
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden
};

System.Diagnostics.Process p = new System.Diagnostics.Process() { StartInfo = startInfo };

p.OutputDataReceived += (sender, e) =>
{

MessageBox.Show(e.Data);
};
p.Start();
p.BeginOutputReadLine();

Unknownlive
پنج شنبه 27 فروردین 1388, 18:04 عصر
System.Diagnostics.Process.Start("net", "user [username] [password]");
به صورت کامل:



System.Diagnostics.ProcessStartInfo startInfo =
new System.Diagnostics.ProcessStartInfo()
{
FileName = "net",
Arguments = "user [username] [password]",
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden
};

System.Diagnostics.Process p = new System.Diagnostics.Process() { StartInfo = startInfo };

p.OutputDataReceived += (sender, e) =>
{
MessageBox.Show(e.Data);
};
p.Start();
p.BeginOutputReadLine();

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

prankster
پنج شنبه 27 فروردین 1388, 20:41 عصر
از process برای اجرای یک پروسه جدید شامل فایل های اجرایی، bat فایل ها، command ها و یا حتی type هایی که در ویندوز register شده اند (مثل jpg) می توان استفاده کرد.
هنگامی که یک برنامه #C را اجرا می کنید یک پروسه با همان نام را اجرا می کنید، از طریق برنامه جاری می توان پروسه های دیگری را هم اجرا کرد. لیست پروسه های جاری از task manager قابل مشاهده است.
به طور کلی اجرای یک پروسه دیگر از طریق برنامه جاری عمل نسبتا ریسک پذیری است، برنامه نویس باید همیشه دقت کند که هنگام خروج از برنامه اصلی پروسه هایی که ایجاد شده اند از بین برده شوند.

در کد قبلی، command از نوع net عملا اجرای برنامه net.exe است که در پوشه system32 موجود است، دستور net چندین argument را به عنوان ورودی قبول می کند که یکی از آنها user است. بنابراین عملا دستور قبلی چیزی به جز اجرای فایل net.exe به همراه پارامتر های ورودی نیست.
قسمت دوم فقط تنظیمات اجرای یک پروسه با استفاده از ProcessStartInfo است، با استفاده از event های موجود هم می توان پیغام های خروجی یا خطا در یک process را به برنامه اصلی برگرداند

mohammadsaleh
سه شنبه 01 اردیبهشت 1388, 09:19 صبح
سلام به همه دوستان عزيز
از راهنمايي هاي خوبوتون تشكر مي كنم . من هم استفاده كردم
يك سئوال دارم و آن اينه كه با دستورات vb چطور ميشه يوزري كه اكتيو نيست رو اكتيو كرد. متشكرم

من علمني حرفا فقد صيرني عبدا. امام علي عليه السلام

danial82
چهارشنبه 29 مهر 1388, 11:52 صبح
من میخوام دستور bcp رو از طریق کد استفاده کنم چطور میتوانم این کار و انجام بدم؟
این دستور محتویات یک جدول و به یک فایل text منتقل میکنه این دستور در cmd اجرا میشه از طریق کد چجور میشه؟



bcp pubs..authors out c:\test.txt -c -Craw