تبليغاتX
آموزش C/C++/C#.NET

آموزش C/C++/C#.NET

آموزش C/C++/C#.NET ، معرفی کتب ریاضی و مقدمه ای بر ترجمه متون تخصصی کامپیوتر

Managing your computer's processes

Introduction

     In order to follow this tutorial step-by-step you will need to have .NET Framework and Visual Studio .NET installed on your computer. If you only want to run the sample application provided with this tutorial, then you will need only .NET Framework.

Getting to work

   Today, we will create a sample application witch is similar to Task Manager, that can help you understand better the Process class of the .NET Framwork.

   Let's get to work, shall we? Open Visual Studio .NET (if you didn't already have it open), and create a new C# Windows Application ( File -> New Project ->Visual C# Projects -> Windows Application ). Name it whatever you like (I called it ProcessManager). Visual Studio .NET creates a new project adds to the project a Form.

   If all worked well, you are now in front of the Design view. Here, let's add a few controls to our form.
The first thing we need to add is a ListBox control, in witch we will display the processes. So go to the Toolbox (if is not visible, go to View -> Toolbox or type Ctrl + Alt +X ) and drag-and-drop the control on your form. Bellow it, we will add three buttons. Add the first one. Set its Text property to End Process and its Name to btn_end. Let's add another button. Set its Text to Refresh and its Name to btn_refresh. Finally, for the third button, let's set its Text to Show Details and its Name to btn_details.

       Again, the layout of the controls is not the issue here, so if yours came out differently, don't worry. It will still work. Before we get down to coding, you will need in import the System.Diagnostics namespace.

   We want that when the form loads, to show us the names of the processes. So we will need to create a method that occurs when the form loads. Let's do that by double-clicking on the form's surface. You will notice a newly created method called Form1_Load. In this method, we will add the code to populate the listbox with the processes that are currently in memory. We will need to repopulate the ListBox also when we click refresh, or after we end a process. So let's create a function. I will call it DoRefresh. Here it is:

private void DoRefresh()
        {
        listBox1.Items.Clear();

        Process[] procs = Process.GetProcesses( Environment.MachineName );

        foreach (Process process in procs)
              {
                      listBox1.Items.Add(process.ProcessName);
               }
        }

   What does it do? Well, first of all it clears the items currently in the ListBox. Then it create an array of Process objects, witch it fills with the current processes taken from the current machine. Then iterates through each Process object in the array, and adds the Process' name to the ListBox. So now let's call this method in the Form1_Load method:

DoRefresh();

   Go now to the Design view and double-click the Refresh button. In the newly created method, add a call to the DoRefresh method.

    Again, go to Design view and double-click the End Process button. In the new method, let's identify the project that was selected to be killed.

        foreach (Process p in Process.GetProcesses(Environment.MachineName))
               {
                      if (p.ProcessName.Equals(listBox1.SelectedItem.ToString()))
                            {
                                    p.Kill();

                                    break;
                             }
               }

    Again, we will iterate through the processes on our machine and find a process that has the same name as our selected item in the listbox control. If we find it, we kill it and we break out of the foreach loop.
    In the Design view again, let's double-click the Show Details button. In the new method, we will need it iterate again through the current running processes on the local machine, and find the Process who's name is selected in the ListBox.

        foreach (Process p in Process.GetProcesses(Environment.MachineName))
               {
                      if (p.ProcessName.Equals(listBox1.SelectedItem.ToString()))
                             {
                                    MessageBox.Show("Process Id: "+p.Id+"\n"+
                                                         "Process Name: "+p.ProcessName+"\n"+
                                                         "Handles Opened by the Process: "+p.HandleCount+"\n"+
                                                         "Main Window Title: "+p.MainWindowTitle+"\n"+
                                                         "Start Time: "+p.StartTime.ToShortDateString() +" "+ p.StartTime.ToShortTimeString()+"\n"+
                                                         "Threads Count: "+p.Threads.Count+"\n"+
                                                         "Phisical Memory: "+p.WorkingSet/1024+ " K"
                                                         );
                                                  break;
                               }
        }

    Once we find it, let's print some information about is, like its ID, its name and so one. Notice that for the physical memory, I've divided the result with 1024. The reason I've done that is the WorkingSet property returns the current memory for the specified process in bytes. That is a rather long and less impressive number, so I've changed it to show kilobytes.

برگرفته از :

codersource.net

+ نوشته شده در  پنجشنبه بیست و هفتم دی 1386ساعت 21:52  توسط غلامرضا صابری تبریزی  | 

سلام بچه ها امیدوارم حالتون خوب باشه. ایام شهادت امام حسین(ع) و یاران گرامی ایشان رو به مقدم امام زمان(عج) و تمامی مسلمانان تسلیت می گم.

موفق باشید.

+ نوشته شده در  پنجشنبه بیست و هفتم دی 1386ساعت 21:6  توسط غلامرضا صابری تبریزی  | 

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

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

برای مقاله های دیگر می تونید به سایت هایی مثل:تکنو تاکس  یا کد باز و یا برای برنامه نویسی با پرل به دیگیلاس مراجعه کنید البته مقاله های متعددی رو هم می تونید در foss پیدا کنید در این سایت ها لینک به سایت های دیگر هم وجود داره که بهتون کمک می کنه.

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

بچه ها راستی از نظراتتون هم ممنون.(جدی نگیرین تیکه بود.)

موفق باشید.

بای.

+ نوشته شده در  دوشنبه بیست و چهارم دی 1386ساعت 23:35  توسط غلامرضا صابری تبریزی  | 

Mariah Carey

Track Name: My All

I am thinking of you
In my sleepless solitude tonight
If its wrong to love you
Then my heart just wont let me be right
cause Ive drowned in you
And I wont pull through
Without you by my side

Id give my all to have
Just one more night with you
Id risk my life to feel
Your body next to mine
cause I cant let go on
Living in the memory of your song
Id give my all for your love tonight

Baby can you feel me
Imagining Im looking in your eyes
I can see you clearly
Vividly emblazoned in my mind
And yet youre so far
Like a distant star
Im wishing on tonight

Id give my all to have
Just one more night with you
Id risk my life to feel
Your body next to mine
cause I cant let go on
Living in the memory of your song
Id give my all for your love tonight

Id give my all to have
Just one more night with you
Id risk my life to feel
Your body next to mine
cause I cant let go on
Living in the memory of your song
Id give my all for your love tonight
Give my all for your love
Tonight

 

+ نوشته شده در  پنجشنبه سیزدهم دی 1386ساعت 21:16  توسط غلامرضا صابری تبریزی  | 

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

خوب بعد از مدتی که آپ نکرده بودم امروز به سرم زد یک مطلب براتون بنویسم. بعضی از دوستان هستند که شاید بخواهند در زمینه سیستم عامل و یا مقوله هایی از این قبیل مثل برنامه نویسی سوکت یا این سبک از برنامه نویسی کار کنند من برای شروع چند تا پیشنهاد مهم واسشون دارم. اولا اینکه این دسته از برورچ حتما یک زبون رو خودشون بلدند من بهتون شدییییییییییدا پیشنهاد می کنم اول مفاهیم سیستم عامل رو کاملا یاد بگیرین برای این کار بهترین کتابی که من دیدم کتاب  اندرو اس تن انبام هستش که هم ترجمه شده و هم چاپ های مختلفش در دسترس هست. بعد هم بهتون پیشنهاد می کنم زبون سی رو با یک کتاب خوب یاد بگیرین این کتابی که ازش یاد می گیرین خیلی مهمه چون اگه از اول چیزی رو به درستی یاد بگیرین می تونین تا آخرش درست برین همون قضیه خشت اول و اینها. بهترین کتابی که من می تونم بهتون معرفی کنم C The Complete Reference از انتشارات McGrawHill هست که خیلی کتاب ارزشمندی است. بعد هم می تونین بسته به رسته ای که انتخاب کردین ÷یش برین البته یاد گرفتن ساختمان داده ها هم خیلی می تونه بهتون کمک کنه. اگر می خواین خیلی خفن کار کنید اسمبلی رو هم باید یاد بگیرین. خوب امیدوارم این پست بتونه به دردتون بخوره.

موفق باشین.

بای.

+ نوشته شده در  پنجشنبه سیزدهم دی 1386ساعت 21:13  توسط غلامرضا صابری تبریزی  | 

بروبچ بازم سلام. آقا سعي كنيد اگر سي شارپ و يا VC++.NET كار مي كنيد حتما سري به سايت زير بزنيد خيلي به دردتون خواهد خورد:

http://www.codersource.net

بچه ها راستي من مي خواهم يك مقاله راجع به اشاره گر ها و طريقه كار آنها در C بنويسم اگر كسي موفق است نظرش رو بگه.

موفق  باشيد.

+ نوشته شده در  دوشنبه دهم دی 1386ساعت 9:24  توسط غلامرضا صابری تبریزی  | 

سلام خدمت بروبچ آقا از نظراتی که می دین واقعا ممنون که اینقدر ما رو شرمنده می کنید خوب بگذریم یکی از دوستان پرسیده بودن چطور می شه کد توابع کتابخانه استاندارد رو گیر آورد وا لا تا اونجایی که من می دونم این توابع به صورت کد باز ارائه نشده اند مثلا سر فایل math.h در اين سرفايل ها فقط پيش تعريف توابع وجود داره و پياده سازي اونها در مسير LIB كامپايلر شما قرار داره كه بسته به كامپايلر و پلت فرمتون فايلهايي با پسوند مثلا :‌ LIB و DLL وجود دارد. اين فايل ها كامپاي شده هستند و نمي تونيد محتويات اونها رو مشاهده كنيد مگر اينكه با يك برنامه Decompiler كد اونها رو به اسمبلي بر گردونيد و بعد از اسمبلي خودتون تبديل رو انجام بدين كه احتياج به مهارت بالايي داره. به نظر بنده بهتر است اگر به دنبال طريقه پياده سازي تابع خاصي مي گردين در يك موتور جستجو نام تابع رو جستجو به دنبال كلمه اي مثل Implementation به معني پياده سازي جستجو كنيد تا اگر شخصي تابع رو خودش با روشي خاص پياده كرده بتونيد توضيحات اون رو ببينيد. موفق باشيد. نظر يادتون نره.

باي باي.

+ نوشته شده در  دوشنبه دهم دی 1386ساعت 9:13  توسط غلامرضا صابری تبریزی  | 

سلام اين دفعه مي خوام يك بحث جالب رو شروع كنم اينكه چي رو ياد بگيريم بهتره؟ C يا C++ يا C# يا Java و....

اولا بايد خدمتتون عرض كنم در ابتدا بايد هدف خودتون رو مشخص كنيد. اينكه چي ار مي خوايد انجام بدين برنامه نويسي سيستمي ، تجاري و.... بعد از اون بايد بهترين زبان رو در زمينه اي كه انتخاب كردين انتخاب كنيد و شروع به يادگيري اون كنيد البته مسلما بعد از مدتي بايد زبان هاي ديگري رو هم براي تكميل كارتون ياد بگيرين. در اين قسمت من به توضيح مختصري درباره زمينه اي كه با برخي از اين زبون ها كار مي شه توضيح مي دهم.

C : يكي از پرطرفدارترين زبانهاي برنامه نويسي دنيا. يك كمي داره قديمي مي شه اما قدرتش رو فكر نمي كنم حالا حالا ها از دست بده اون هم به دليل داشتن كتابخونه قدرتمند تحت هر سيستم عاملي هست. البته معايب زيادي هم داره مسلا پشتيباني نكردن از برنامه نويسي شي گرا كه باعث به وجود آمدن C++ شد. بيشتر به درد برنامه نويسي سيستمي مي خوره تا Application نويسي و ايجاد رابط هاي گرافيكي كاربر.

C++ : يك جورايي پسر C به حساب مي ياد البته از نظر تاريخي و نه از نظر قدرت چرا كه زبون سي رو به همراه امكانات بسيار ديگه اي در خودش جمع كرده. براي برنامه نويسي ويژوال بايد از نسخه اي كه براي اين اعمال طراحي شده استفاده كنين VC++ البته با خودش هم مي شه برنامه نويسي به صورت طراحي فرم و... انجام داد ولي كار سختي هستش. در هر حال براي انجام اعمال گرافيكي مثل بازي نويسي، برنامه نويسي سيستمي و نوشتن برنامه ها و پروژه هاي سنگين حرف اول رو مي زنه.

C#: از هم خانواده هاي زبان هاي بالا هستش و ويژه گي هاي خوب سي و سي++ و جاوا رو با هم جمع كرده در واقع قدرت رو به همراه سهولت در استفاده ايجاد كرده بيشتر به درد برنامه نويسي تحت ويندوز و برنامه نويسي تجاري (به سبك گرافيكي) مي خوره.

اميدوارم توضيحات بالا با تمامي نقص هايي كه داره به دردتون بخوره.

+ نوشته شده در  شنبه یکم دی 1386ساعت 0:36  توسط غلامرضا صابری تبریزی  |