سلام و عرض ارادت خدمت دوستان عزیزم...
توو این پست قصد داریم با سی شارپ یه برنامه بنویسیم که اطلاعات سیستممون رو توو فرم به نمایش دربیاره. مثل برنامه Msinfo که اطلاعات کاملی از سیستممون بهمون میده! برای دیدن این اطلاعات توو RUN تایپ کنید: Msinfo32 و اینتر کنید. البته علاوه براطلاعات سیستم میخوایم چیزای قشنگ تری هم بهش اضافه کنیم، مثل درصد پردازش CPU و RAM و تصویر یوزرمون و... از این برنامه صرفاً جهت مشاهده اطلاعات سیستم استفاده میشه، البته کاربرهایی هم توو ویروس و تروجان نویسی داره که این موضوع رو بازش نمیکنم :)
1- ویژوال استادیو رو استارت کنید و یه پروژه با نام دلخواه (ترجیحاً Sysinfo ) ایجاد کنید.
2- توو دیزاین فرمتون ابزارهای زیر رو ادد کنید.
24 تا Label
1دونه Rich texbox
1 دونه ProgressBar
1 دونه Picturebox
1 دونه Timer
پیشنهاد میکنم مثل زیر مرتب کنید. و نام متن لیبل ها رو هم مثل تصویر زیر بنویسید:
توجه:
توو Properties ریچ تکست باکس، مقدار ReadOnly رو True بزارید.
و توو Properties پیکچرباکس مقدار SizeMode رو به StretchImage تغییر بدید.
و تایمر رو هم فعال کنید.
خوشگل موشگل کردن هم باز پای خودتونه :)
حالا میریم توو کدنویسی...
اول کتابخونه های زیر رو اضافه کنید.
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Net;
حالا تابع زیر رو بعد از
public Form1()
{
InitializeComponent();
}
تعریف کنید.
تابع (این تابع برای نمایش تصویر یوزر هست) :
[DllImport("shell32.dll", EntryPoint = "#261",
CharSet = CharSet.Unicode, PreserveSig = false)]
public static extern void GetUserTilePath(
string username,
UInt32 whatever, // 0x80000000
StringBuilder picpath, int maxLength);
public string GetUserTilePath(string username)
{ // username: use null for current user
var sb = new StringBuilder(1000);
GetUserTilePath(username, 0x80000000, sb, sb.Capacity);
return sb.ToString();
}
public Image GetUserTile(string username)
{
return Image.FromFile(GetUserTilePath(username));
}
بعد از اون کد پردازش CUP و RAM رو تعریف کنید. (این کد برای تعریف نمایش پردازش CPU و RAM هست)
پردازش CPU:
PerformanceCounter CPU_Using = new PerformanceCounter();
پردازش RAM:
PerformanceCounter RAM_Using = new PerformanceCounter();
حالا توو دیزاین روی فرم دوبار کلیک کنید و در قسمت فرم لودForm_Load کد های زیر رو به ترتیب بنویسید:
کد قرار گرفتن تصویر یوزر در پیکچر باکس1:
pictureBox1.Image = GetUserTile("Virus32");
توجه: Virus32 عنوان عکسه، بجاش هرچی عشقتون کشید بنویسین :)
کد نمایش نام اصلی سیستم در لیبل 12:
Label2.Text= System.Environment.MachineName.ToString();
کد نمایش نام دامین یوزر در لیبل 13:
Label13.Text= System.Environment.UserDomainName.ToString();
کد نمایش یوزرنیم در لیبل 14:
Label14.Text= System.Environment.UserName.ToString();
کد نمایش هاست نیم و مک آدرس که در این پست یاد گرفتید در لیبل 15 و 16:
label15.Text = Dns.GetHostName() + " ";
foreach (IPAddress adres in Dns.GetHostAddresses(Dns.GetHostName()))
{
Label16.Text = adres + " ";
}
کد نمایش تعداد هسته CPUسیستم شما در لیبل 17:
Label17.Text = System.Environment.ProcessorCount.ToString();
کد نمایش ورژن سیستم در لیبل 18:
Label18.Text = System.Environment.Version.ToString();
کد نمایش نسخه ویندوز در لیبل 19:
Label19.Text= System.Environment.OSVersion.ToString();
کد نمایش دایرکتوری سیستم در لیبل 20:
Label20.Text= System.Environment.SystemDirectory.ToString();
کد نمایش مدت زمان روشن بودن سیستم بر حسب میلی ثانیه(ms) در لیبل 21:
Label21.Text= System.Environment.TickCount.ToString();
کد نمایش آدرس این برنامه ای که داریم مینویسیمش در ریچ تکست باکس1:
richTextBox1.Text = System.Environment.CommandLine.ToString();
نوبتی هم باشه، نوبت CUP و RAM هست :)
در قسمت تایمر هم کد های زیر رو بنویسید. (این کد برای نمایش میزان پردازش CPU و RAM هست).
//----------------------------------------------------------------------------
//# Get CPU Usage.
CPU_Using.CategoryName = "Processor";
CPU_Using.CounterName = "% Processor Time";
CPU_Using.InstanceName = "_Total";
//============================================
double Rounded_CPU_Usage;
Rounded_CPU_Usage = Math.Round(CPU_Using.NextValue());
label24.Text = "CPU Usage: " + Rounded_CPU_Usage + " % ";
progressBar1.Value = (int)Rounded_CPU_Usage;
//----------------------------------------------------------------------------
//# Get RAM Usage.
RAM_Using.CategoryName = "Memory";
RAM_Using.CounterName = "Available MBytes";
label25.Text = "Memory Usage: " + RAM_Using.NextValue().ToString() + " MB ";
/----------------------------------------------------------------------------
حالا میتونید هرچی که دوست دارید به طور دلخواه به برنامتون اضافه کنید مثلاً من بهش تاریخ شمسی که توو این پست یاد گرفته بودیم رو بهش اضافه کردم. و حالا پروژه رو استارت کنید.
این برنامه ایه که من نوشتم و سورسش رو اون پایین، براتون قرار میدم:
خوب، تبریک میگم بهتون، مبارکا باشه. امیدوارم مفید بوده باشه و لذت کافی برده باشید. تلاش کنید و رووش کارکنید اگه میخواید تروجانی بنویسید که همه ی اطلاعات سیستم رو کِش برید، بتونین اطلاعات کامل تری رو سرقت کنید و به این پست بسنده نکنید ولی اگه نیتتون خیر بود که خدا پشت و پناهتون... :)
________________________________________________________
________________________________________________________
امیدوارم موفق باشید ...