الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

System Information

مغلق
بدأه baha_ashour في 8 يناير 2006 · 13 رد · 1,729 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

Operating System Info :

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Operating System: " + mo["Caption"]);
    MessageBox.Show("Version: " + mo["Version"]);
    MessageBox.Show("Manufacturer : " + mo["Manufacturer"]);
    MessageBox.Show("Computer Name : " +mo["csname"]);
    MessageBox.Show("Windows Directory : " + mo["WindowsDirectory"]);
    MessageBox.Show("Serial Number : " + mo["SerialNumber"]);
 	 }

Computer System Info

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_ComputerSystem");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Computer Manufacturer Name: " + mo["Manufacturer"]);
    MessageBox.Show("Computer Model: " + mo["model"]);
    MessageBox.Show("System Type: " + mo["SystemType"]);
    MessageBox.Show("Total Physical Memory: " + mo["totalphysicalmemory"]);
    MessageBox.Show("Domain: " + mo["Domain"]);
    MessageBox.Show("User Name: " + mo["UserName"]);
 	 }

Processor Info

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_processor");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Manufacturer: " + mo["Manufacturer"]);
    MessageBox.Show("Computer Processor: " + mo["Caption"]);
    MessageBox.Show("CPU Speed: " + mo["MaxClockSpeed"]);
    MessageBox.Show("L2 Cache Size: " + mo["L2CacheSize"]);
 	 }

Bios Info

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_bios");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("BIOS: " + mo["Caption"]);
    MessageBox.Show("BIOS Version: " + mo["version"]);
 	 }

Time Zone

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_timezone");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Time Zone: " + mo["Caption"]);
 	 }

Memory Configuration

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_LogicalMemoryConfiguration");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Total Page File Space: " + mo["TotalPageFileSpace"]);
    MessageBox.Show("Total Virtual Memory: "+mo["TotalVirtualMemory"]);
    MessageBox.Show("Total Physical Memory: "+ mo["TotalPhysicalMemory"]);
 	 }

Network Connection

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_NetworkConnection");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Name: " + mo["Name"]);
 	 }

Video Controller

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_VideoController");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Name: " + mo["Name"]);
    MessageBox.Show("Processor: " + mo["VideoProcessor"]);
    MessageBox.Show("Mode: " + mo["VideoModeDescription"]);
    MessageBox.Show("Video Ram: " + mo["AdapterRAM"]);
    MessageBox.Show("PNP Device ID: " + mo["PNPDeviceID"]);
    MessageBox.Show("Status: " + mo["Status"]);
 	 }
#2

الله يعطيك العافية أخي .... الكود كثير رائع ....

#3

السلام عليكم و رحمة الله ....

عندي مشكلة في هذا الكود ...فعندما جربته في Visual Studio.NET لم يعمل بحجة أن كلاس ConnectionOptions غير موجودة على الرغم من أنها موجودة في ال Documentation الخاصة به .... و بالتالي فإنه يعطي رسالة خطأ في ال name space

و هناك طلب آخر ... أريد جلب السيريال الخاص بالبروسيسور أو أي قطعة من الجهاز ....

وفقكم الله إلى ما تحبه و يرضاه و كل عام و أنتم إلى الله أقرب و على طاعته أدوم

-waf

#4

شكرا على مجهودك (baha_ashour) بس لو تدي شرح للأكواد بالعربي يصير أحسن

#5

Processor Serial Number

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_PhysicalMedia");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Processor Serial Number: " + mo["SerialNumber"]);
 	 }
#6

HardDisks + FloppyDisk + CD

ConnectionOptions co = new ConnectionOptions();
 	 //co.Username = "remoteUsername";//Only For Remote Machine
 	 //co.Password = "remotePassword";//Only For Remote Machine
 	 //For Local Machine ( leave them )

 	 string machineName = "localhost"; // or the IP of the remote machime
 	 ManagementScope ms = new ManagementScope("\\\\"+machineName+"\\root\\cimv2",co);

 	 ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_LogicalDisk");
 	 ManagementObjectSearcher mos = new ManagementObjectSearcher(ms,oq);

 	 ManagementObjectCollection queryCollection = mos.Get();
 	 foreach ( ManagementObject mo in queryCollection)
 	 {
    MessageBox.Show("Name: " + mo["Name"]);
    MessageBox.Show("Serial Number: " + mo["Volumeserialnumber"]);
 	 }
#8

السلام عليكم

جزاكم الله خير

ولكن تواجهني نفس مشكلة الأخ mr.x

فما هو الحل

#9

معلومة ممتازة و مفيدة جداً

ستواجه البعض مشكلة و هي أن الclass التي تسمى ConnectionOptions و كل الclasses الأخرى غير موجودة

أولاً قم بعمل add reference للSystem.Management.dll

ثانيا قم باضافة using System.Management; في أول الكود

تم تعديل هذه المشاركة بواسطة bashmohandes في 11 يناير 2006 في 17:05

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#10
using System;
using System.Collections.Generic;
using System.Text;
using System.Management;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionOptions op = new ConnectionOptions();
            ManagementScope sc = new ManagementScope(@"\\localhost\root\cimv2", op);
            //فقط غير اسم الجدول الذي تبحث فيه و سيعمل الكود
            ObjectQuery qu = new ObjectQuery("Select * From Win32_OperatingSystem");
            ManagementObjectSearcher se = new ManagementObjectSearcher(sc, qu);
            ManagementObjectCollection col = se.Get();
            foreach (ManagementObject obj in col)
            {
                //Console.WriteLine(obj["Name"]);
                foreach (PropertyData data in obj.Properties)
                {
                    Console.WriteLine(data.Name + ": " + data.Value); 
                }
            }
        }
    }
}

هذا الكود أعم فهو يعمل على أي query لأنه يقوم بعرض جميع الProperties التي وجدها الQueries فقط غير ال Select Statement لتغيير مكان البحث

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#11

مشكور أخ bashmohandes

ال Example بعد التعديل :

remotesystemInformation.rar

#12

جزاك الله مليون خير

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#13

الأكواد دى تحفة اكثر من رائعة

شكرا جزيا كثيرا

أحمد صلاح

#14

جزاك الله خيرا خي علي الاكواد الرائعه

Khaled_Tiger

النجاح الوحيد في الحياة هو أن تستطيع أن تحيا حياتك بالطريقة التي تريدها

يخاطبني السفيه بكل قبح *** فأكره أن أكون له مجيبا

يزيد سفاهة فأزيد حلمــا *** كعود زاده الإحراق طيبا

إذا نطق السفيه فلا تجبه *** فخير من إجابته السكوت

فإن كلَمته فرَجت عنــــه *** وإن خليته كمداً يـمـــوت

هذا الموضوع مغلق.

مواضيع مشابهة