"

کنترل process در سی شارپ

تیم تحریریه 1404/07/10 0 5
لینک کوتاه https://zoheirsoftware.com/z/baeeb910e |
کنترل process در سی شارپ,کاربرد کنترل process در سی شارپ, ویژگی‌های مهم کلاس Process در سی شارپ

کنترل Process در سی‌شارپ 

در دنیای برنامه‌نویسی، مدیریت پردازش‌ها (Processes) یکی از مهم‌ترین نیازها برای توسعه‌دهندگان است.

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

در سی‌شارپ و محیط .NET، این کارها با استفاده از کلاس Process انجام می‌شود.

کلاس Process در فضای نام System.Diagnostics قرار دارد و مجموعه‌ای از متدها و ویژگی‌ها را برای اجرای برنامه‌ها، مدیریت پردازش‌ها، دریافت اطلاعات وضعیت و کنترل چرخه‌ی اجرای آن‌ها در اختیار ما قرار می‌دهد.

 

مفهوم Process در سی‌شارپ

Process در دنیای سیستم‌عامل به معنای یک نمونه از برنامه‌ی در حال اجرا است.

به‌طور مثال اگر شما نرم‌افزار Notepad را سه بار باز کنید، سه پردازش (Process) مجزا در حافظه فعال می‌شوند.

هر Process شامل منابعی مانند حافظه، فایل‌های باز، و یک یا چند رشته (Thread) اجرایی است.

در سی‌شارپ، کلاس System.Diagnostics.Process به شما اجازه می‌دهد:

  • یک برنامه یا فایل را اجرا کنید.
  • اطلاعات دقیقی از پردازش‌های در حال اجرا بگیرید (مانند شناسه پردازش، میزان استفاده از حافظه، زمان شروع و غیره).
  • پردازش‌ها را متوقف یا پایان دهید.
  • داده‌های ورودی یا خروجی پردازش‌ها را بخوانید یا ارسال کنید.

 

آموزش کنترل Process در سی شارپ شامل اجرای برنامه، توقف و مدیریت پردازه‌ها

 

 

 

آیا به دنبال یک فرصت عالی برای یادگیری برنامه‌نویسی هستید؟ 🚀

با دوره آموزشی سی‌شارپ ما، شما می‌توانید مهارت‌های خود را به سطح جدیدی ارتقا دهید! این دوره به‌طور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامه‌نویسی سی‌شارپ پیش بروید.

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ

 

 

کاربرد کنترل process در سی شارپ

  • اجرای نرم‌افزارهای خارجی از درون برنامه (مثلاً باز کردن Word یا Excel).

  • باز کردن آدرس‌های اینترنتی با مرورگر پیش‌فرض.

  • گرفتن لیست پردازش‌های فعال روی سیستم.

  • بستن یا ریستارت کردن برنامه‌های خاص.

  • اجرای دستورات خط فرمان (Command Prompt).

  • فضای نام مورد استفاده

برای کار با پردازش‌ها باید فضای نام زیر را اضافه کنید:

using System.Diagnostics;

 

کاربرد کنترل process در سی شارپ

 

ایجاد Process در فرم (اجرای یک برنامه ساده)

یک مثال ساده اجرای Notepad از طریق برنامه:

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace ProcessExample
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            Button btnRun = new Button();
            btnRun.Text = "اجرای Notepad";
            btnRun.Click += BtnRun_Click;
            Controls.Add(btnRun);
        }

        private void BtnRun_Click(object sender, EventArgs e)
        {
            Process.Start("notepad.exe");
        }
    }
}


در این مثال، با کلیک روی دکمه، نرم‌افزار Notepad اجرا می‌شود.

اجرای فایل‌ها یا آدرس‌ها با Process

کلاس Process علاوه بر اجرای نرم‌افزارها، می‌تواند فایل‌ها و حتی آدرس‌های اینترنتی را با برنامه‌ی پیش‌فرض سیستم باز کند.

باز کردن یک فایل متنی:

Process.Start("example.txt");


اگر در سیستم یک ویرایشگر متن پیش‌فرض وجود داشته باشد (مثل Notepad)، فایل باز می‌شود.

باز کردن یک وب‌سایت:

Process.Start("https://www.google.com");


این دستور آدرس وب را در مرورگر پیش‌فرض سیستم باز می‌کند.

 استفاده از ProcessStartInfo برای تنظیمات پیشرفته

گاهی اوقات نیاز دارید کنترل بیشتری روی اجرای پردازش داشته باشید، مثلاً مشخص کنید در چه پوشه‌ای اجرا شود یا چه آرگومان‌هایی به آن داده شود.

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

مثال: اجرای Notepad با باز کردن فایل خاص

 

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "notepad.exe";
startInfo.Arguments = "example.txt"; // باز کردن فایل همراه برنامه
Process.Start(startInfo);

مثال: اجرای Command Prompt و اجرای دستور

ProcessStartInfo cmdInfo = new ProcessStartInfo("cmd.exe", "/c dir");
cmdInfo.RedirectStandardOutput = true;
cmdInfo.UseShellExecute = false;
cmdInfo.CreateNoWindow = true;

Process cmd = Process.Start(cmdInfo);
string output = cmd.StandardOutput.ReadToEnd();
MessageBox.Show(output);

دریافت لیست پردازش‌های در حال اجرا

شما می‌توانید لیست همه پردازش‌های فعال روی سیستم را با متد Process.GetProcesses() به دست آورید:

Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
    Console.WriteLine($"نام: {p.ProcessName}, ID: {p.Id}");
}


این کد نام و شناسه‌ی (ID) همه پردازش‌های فعال را چاپ می‌کند.

 پایان دادن به یک پردازش

برای بستن یک پردازش خاص می‌توان از متد Kill() استفاده کرد.

مثال: بستن Notepad

Process[] notepads = Process.GetProcessesByName("notepad");
foreach (Process p in notepads)
{
    p.Kill();
}


این کد همه پنجره‌های Notepad باز را می‌بندد.

یک مثال کاربردی در Windows Forms

بیایید یک فرم ساده طراحی کنیم که شامل سه دکمه باشد:

  • اجرای Notepad
  • نمایش لیست پردازش‌ها
  • بستن Notepad

کد کامل:

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace ProcessApp
{
    public class MainForm : Form
    {
        private Button btnRun;
        private Button btnList;
        private Button btnKill;

        public MainForm()
        {
            this.Text = "مدیریت پردازش‌ها در سی‌شارپ";
            this.Size = new System.Drawing.Size(400, 200);

            btnRun = new Button() { Text = "اجرای Notepad", Left = 30, Top = 30, Width = 120 };
            btnList = new Button() { Text = "لیست پردازش‌ها", Left = 160, Top = 30, Width = 120 };
            btnKill = new Button() { Text = "بستن Notepad", Left = 290, Top = 30, Width = 120 };

            btnRun.Click += BtnRun_Click;
            btnList.Click += BtnList_Click;
            btnKill.Click += BtnKill_Click;

            this.Controls.Add(btnRun);
            this.Controls.Add(btnList);
            this.Controls.Add(btnKill);
        }

        private void BtnRun_Click(object sender, EventArgs e)
        {
            Process.Start("notepad.exe");
        }

        private void BtnList_Click(object sender, EventArgs e)
        {
            Process[] processes = Process.GetProcesses();
            string list = "";
            foreach (Process p in processes)
            {
                list += $"{p.ProcessName} - ID: {p.Id}\n";
            }
            MessageBox.Show(list, "لیست پردازش‌ها");
        }

        private void BtnKill_Click(object sender, EventArgs e)
        {
            Process[] notepads = Process.GetProcessesByName("notepad");
            foreach (Process p in notepads)
            {
                p.Kill();
            }
            MessageBox.Show("همه پردازش‌های Notepad بسته شدند.");
        }
    }
}

 ویژگی‌های مهم کلاس Process در سی شارپ

  • Id

    شناسه پردازش.
  • ProcessName

    نام پردازش.
  • StartTime

    زمان شروع پردازش.
  • TotalProcessorTime

    مقدار استفاده از CPU.
  • WorkingSet64

    میزان حافظه استفاده شده توسط پردازش.
  • ()Kill

    پایان دادن به پردازش.
  • ()WaitForExit

    منتظر ماندن تا پردازش پایان یابد.

 ویژگی‌های مهم کلاس Process در سی شارپ

 

 

اجرای برنامه‌ها با دسترسی ادمین

گاهی اوقات نیاز دارید برنامه‌ای را با دسترسی مدیر (Administrator) اجرا کنید. برای این کار در ProcessStartInfo خاصیت Verb روی "runas" قرار می‌گیرد:

ProcessStartInfo info = new ProcessStartInfo("notepad.exe");
info.Verb = "runas"; // اجرا با دسترسی ادمین
Process.Start(info);

مزایا و معایب استفاده از Process در سی شارپ

  • مزایا

    • امکان اجرای هر نرم‌افزار یا دستور از داخل برنامه.
    • مدیریت کامل روی پردازش‌های فعال.
    • دسترسی به اطلاعات سیستم و منابع.
    • مناسب برای برنامه‌های سیستمی و مدیریتی.
  • معایب

    • نیاز به دقت بالا؛ استفاده اشتباه از Kill ممکن است به سیستم آسیب بزند.
    • برخی دستورات نیاز به دسترسی ادمین دارند.
    • وابستگی به سیستم‌عامل (این کلاس مخصوص ویندوز است).

جمع‌بندی

کلاس Process در سی‌شارپ ابزاری قدرتمند برای مدیریت پردازش‌هاست.

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

برای استفاده در فرم‌های ویندوزی کافی است:

کنترل‌ها و دکمه‌های مناسب روی فرم قرار دهید.

از متدهای Process.Start برای اجرا و Process.Kill برای بستن استفاده کنید.

در صورت نیاز از ProcessStartInfo برای تنظیمات پیشرفته‌تر بهره ببرید.

این قابلیت نه تنها در پروژه‌های آموزشی بلکه در نرم‌افزارهای کاربردی و مدیریتی سیستم نیز بسیار ارزشمند است.

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.

999,000 تومان

3.3k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.