SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

آموزش ساخت taskmgr ویندوز در زبان vb.net

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

  • آموزش ساخت taskmgr ویندوز در زبان vb.net

    شاید همیشه براتون مهم بوده باشه که بدونید taskmgr ویندوز چطوری ساخته شده و بخواید خودتون با اون رو خودتون بسازید 

    البته تو این یکی موضوع برنامه های قوی زیاد داریم که قوی ترین اونها process  hacker  هستش 

    برای ساختن یک Taskmanager می تونیم از هم کد های خود vb.net ( Getprocess    ) استفاده کنیم هم از Win32_class فرقی نداره 

    هر دو گزینه رو شرح می دم 

    اول از همه یک متغیر از نوع process تعریف می کنیم 

    کد:
    Dim process as new process()

    حالا با استفاده از حلقه For each میایم حلقه ای رئ ایجاد می کنیم که پروسه ها در یک لیست باکس بیوفتن 

    کد:
        For Each a In process.GetProcesses()
    
          On Error Resume Next
    
          lstProcesses.Items.Add(a.ProcessName)
    
          lstProcesses.Items(0).SubItems.Add(a.Id.ToString())
          count += 1
    
        Next

    خط اول که همون حلقه هست 

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

    خط سوم میاد نام پروسه ها رو در listview می اندازه 

    خط چهارم اوومدم ID مربوط به پروسه رو هم در column بعدی اون listview آورددم 

    ما می تونیم از طریق این متغیر a که شامل لیست پروسه ها میشه دیگر جزئیات مربوط به اون رو که نمونش همین ID هست یا همون PID رو بدست بیاریم 

    اما از property های اون می تونیم این موارد زیر رو هم بهش اضافه کنیم 


          a.Container
          a.ExitCode
          a.ExitTime
          a.Handle
          a.HasExited
          a.Id
          a.MachineName
          a.MainModule
          a.MainWindowTitle
          a.PriorityBoostEnabled
          a.PriorityClass
          a.ProcessName
          a.Responding
          a.SessionId
          a.Site
          a.StandardError
          a.StandardInput
          a.StandardOutput
          a.StartInfo
          a.StartTime
          a.Threads
    حالا می خوایم از لیست وقتی یکی از پروسه ها رو انتخاب می کنیم اون رو end کنیم 

    خوب کد زیر رو بکار می بریم 

    کد:
    For Each Process As ListViewItem In lstProcesses.SelectedItems
    
    System.Diagnostics.Process.GetProcessById(lstProcesses.SelectedItems(0).SubItems(1).Text()).Kill()
    
    Next
    
     
    این کد باید داخل یک دکمه با اسم مثلا end process بزارید دقت کنیم من گفتم که id پروسه ی انتخابی در لیست باکس رو end کن 


    اما اگر کمی هم فکر کنیم ایده های جالبی به نظرمون میاد 

    مثلا یادم میاد خیلی وقت پیش ( این  به این معنیه که من خیلی وقته اینا رو می دونم :4: ) یکی از دوستان که صاحب کافی نت بود می گفت من هر کاری می کنم باز این ملت taskmanager رو بالا میارن منم اومدم براش یک کار خیلی کوچیکی انجام دادم 

    کد زیر رو براش نوشتم و اونرو د ر اصل در وسط حلقه زدم 

    کد:
                If a.ProcessName = "Taskmgr.exe" Or p.ProcessName = "Taskmgr" Then
                    a.Kill()
                End If
    اینجا میگه که اگر پروسه ای با اسم taskmgr اجرا شد اون رو فورا kill کن 

    البته هرچند این کار باعث شد سیستم اون بنده خدا هنگ کنه :4: ولی برای خودم جالب بود 

    همچنین شما می تونید از این کد برای Start کردن یک process استفاده کنید 

    کد:
    Process.Start("nameprose.exe")

    =================================================
    =================================================

    روش بعدی هم که از طریق WMI ویندوز هست 

    که در اینجا بهش اشاره کردیم 

    استفاده از رفرنس زیر 

    کد:
    Imports System.Management
    انتخاب متود مورد نظر از طریق زبان WQL و انتصاب اون به متغیر 

    کد:
        
    Dim strLocal_service As String = "SELECT * FROM Win32_process"
    تعریف این متغیر از نوع ابجکت ManagementObjectSearcher 

    کد:
        Dim sysservice_Searcher As New ManagementObjectSearcher(strLocal_service)

    و استفاده از حلقه for each جهت لیست کردن نام پروسه ها 

    کد:
        Dim i As Integer
        For Each servicelist As ManagementObject In sysservice_Searcher.Get()
          lstProcesses.Items.Add(servicelist("name").ToString)
    
          i = i + 1
    
        Next
     دیگر property های مربوط به این کلاس رو تو لیست زیر مشاهده می کنید .


      string   Caption;
      string   CommandLine;
      string   CreationClassName;
      datetime CreationDate;
      string   CSCreationClassName;
      string   CSName;
      string   De******ion;
      string   ExecutablePath;
      uint16   ExecutionState;
      string   Handle;
      uint32   HandleCount;
      datetime InstallDate;
      uint64   KernelModeTime;
      uint32   MaximumWorkingSetSize;
      uint32   MinimumWorkingSetSize;
      string   Name;
      string   OSCreationClassName;
      string   OSName;
      uint64   OtherOperationCount;
      uint64   OtherTransferCount;
      uint32   PageFaults;
      uint32   PageFileUsage;
      uint32   ParentProcessId;
      uint32   PeakPageFileUsage;
      uint64   PeakVirtualSize;
      uint32   PeakWorkingSetSize;
      uint32   Priority;
      uint64   PrivatePageCount;
      uint32   ProcessId;
      uint32   QuotaNonPagedPoolUsage;
      uint32   QuotaPagedPoolUsage;
      uint32   QuotaPeakNonPagedPoolUsage;
      uint32   QuotaPeakPagedPoolUsage;
      uint64   ReadOperationCount;
      uint64   ReadTransferCount;
      uint32   SessionId;
      string   Status;
      datetime TerminationDate;
      uint32   ThreadCount;
      uint64   UserModeTime;
      uint64   VirtualSize;
      string   WindowsVersion;
      uint64   WorkingSetSize;
      uint64   WriteOperationCount;
      uint64   WriteTransferCount;


    کمی کامل تر هست این کلاس ها همیشه 

    سوالی بود بپرسید تا گرمم :4:
صبر کنید ..
X