اجرای دستورات خط فرمان با سی شارپ به صورت پنهانی

در این مقاله آموزش اجرای دستورات خط فرمان با C# به صورت پنهانی در ویندوز (Command Prompt) را آموزش می بینید ، کد این آموزش به صورت کامل ارائه شده است....

انتشار: , زمان مطالعه: 4 دقیقه
اجرای دستورات خط فرمان با سی شارپ به صورت پنهانی
دسته بندی: برنامه نویسی تعداد بازدید: 386

اجرای دستورات خط فرمان با سی شارپ به صورت پنهانی

در این مقاله آموزش اجرای دستورات خط فرمان با C# به صورت پنهانی در ویندوز (Command Prompt) را آموزش می بینید ، کد این آموزش به صورت کامل ارائه شده است.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Abdal
{
 // Programmer : Ebrahim Shafiei (EbraSha)
    internal class CMDCommandExecutor
    {
        public static async Task ExecuteAsync(string userCommand)
        {
            try
            {
                await Task.Run(() =>
                {
                    using (Process cmd = new Process())
                    {
                        cmd.StartInfo.FileName = "cmd.exe";
                        cmd.StartInfo.RedirectStandardInput = true;
                        cmd.StartInfo.RedirectStandardOutput = true;
                        cmd.StartInfo.CreateNoWindow = true;
                        cmd.StartInfo.UseShellExecute = false;
                        cmd.Start();

                        cmd.StandardInput.WriteLine(userCommand);
                        cmd.StandardInput.Flush();
                        cmd.StandardInput.Close();
                        cmd.WaitForExit();
                    }
                });
            }
            catch 
            {

               
            }
        }
    }
}

نحوه صدا زدن کد در برنامه خود

 public static async Task Main(string[] args)
 {
await CMDCommandExecutor.ExecuteAsync("your command");
 }

توضیح کد فوق :

این کد C# یک کلاس به نام CMDCommandExecutor در فضای نام Abdal را تعریف می‌کند که برای اجرای دستورات در خط فرمان ویندوز (Command Prompt) طراحی شده است. در اینجا جزئیات کلیدی کد آورده شده‌اند:

  1. استفاده از کتابخانه‌ها: کد از کتابخانه‌های استاندارد .NET مانند System, System.Diagnostics, و System.Threading.Tasks استفاده می‌کند. این کتابخانه‌ها برای کار با فرآیندها و اجرای غیرهمزمان مورد نیاز هستند.

  2. کلاس CMDCommandExecutor:

    • متد ExecuteAsync: این متد عمومی و غیرهمزمان (async) با پارامتر ورودی userCommand (یک رشته) تعریف شده است.
    • اجرای دستورات: متد ExecuteAsync برای اجرای دستور userCommand در خط فرمان ویندوز طراحی شده است.
  3. عملکرد متد ExecuteAsync:

    • ایجاد یک فرآیند جدید: با استفاده از کلاس Process، یک فرآیند جدید ایجاد می‌شود که cmd.exe (خط فرمان ویندوز) را اجرا می‌کند.
    • تنظیمات فرآیند: خروجی استاندارد و ورودی استاندارد فرآیند به سمت کد C# هدایت می‌شوند (RedirectStandardOutput و RedirectStandardInput). همچنین، پنجره‌ی فرآیند ایجاد نمی‌شود (CreateNoWindow) و از اجرای فرآیند از طریق shell جلوگیری می‌شود (UseShellExecute = false).
    • نوشتن دستور و انتظار برای خروج: دستور کاربر (userCommand) در ورودی استاندارد فرآیند نوشته شده، سپس ورودی تخلیه (Flush) و بسته می‌شود. برنامه تا زمانی که فرآیند ختم شود (تمام شود) صبر می‌کند (WaitForExit).
  4. مدیریت خطا: بلاک try-catch برای جلوگیری از هرگونه خطای اجرایی در زمان اجرای فرآیند به کار رفته است. در صورت وقوع خطا، برنامه به سادگی از بلاک catch خارج می‌شود بدون آنکه خطایی ثبت یا نمایش داده شود.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)