2015年8月27日 星期四

取得電腦資訊

取得CPU資訊

private void Form_Load(object sender, EventArgs e)
{
     ManagementClass mc = new ManagementClass("win32_processor");                  //新增ManagementClass物件
     ManagementObjectCollection moc = mc.GetInstances();                           //取得CPU資訊
     foreach( ManagementObject mo in moc )
     {
        textBox1.Text = mo["processorid"].ToString();                              //取得CPU編號
     }
    
     ManagementObjectSearcher driveID = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
     foreach ( ManagementObject MyXianKa in driveID.Get())
     {
          textBox2.Text = MyXianKa["Manufacturer"].ToString();                     //取得CPU製造商名稱
          textBox3.Text = MyXianKa["Version"].ToString();                          //取得CPU版本號
          textBox4.Text = MyXianKa["Name"].ToString();                             //取得CPU產品名稱
     }
}

取得磁碟機資訊

private void Form_Load(object sender, EventArgs e)
{
     listBox1.Items.Clear();
     SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk"); //從 WMI 中查詢資訊
     ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);//新增 WMI 管理物件
     foreach( ManagementObject disk in searcher.Get())
     {
        string DriveType;
        DriveType = disk["DriveType"].ToString();                                  //取得磁碟類型
        if(DriveType=="4")                                                         //判斷磁碟機類型
            listBox1.Items.Add(disk["Name"].ToString();                            
     }
}
常用的WMI語詢語句及說明
WMI 查詢語句 說明
SELECT * FROM Win32_UserAccount 取得 Windows 使用者資訊
SELECT * FROM Win32_Group 取得使用者組別資訊
SELECT * FROM Win32_Process 取得目前進程資訊
SELECT * FROM Win32_Service 取得系統服務資訊
SELECT * FROM Win32_SystemDriver 取得系統驅動資訊
SELECT * FROM Win32_Processor 取得中央處理器資訊
SELECT * FROM Win32_BaseBoard 取得主機板資訊
SELECT * FROM Win32_BIOS 取得BIOS資訊
SELECT * FROM Win32_VideoController 取得顯卡資訊
SELECT * FROM Win32_SoundDevice 取得音訊設備資訊
SELECT * FROM Win32_PhysicalMemory 取得實體記憶體資訊
SELECT * FROM Win32_LogicalDisk 取得磁碟資訊
SELECT * FROM Win32_NetworkAdapter 取得網路介面卡資訊
SELECT * FROM Win32_NetworkProtocol 取得網路通訊協定資訊
SELECT * FROM Win32_Printer 取得列印與傳真資訊
SELECT * FROM Win32_Keyboard 取得鍵盤資訊
SELECT * FROM Win32_PointingDevice 取得滑鼠資訊
SELECT * FROM Win32_SerialPort 取得串列埠資訊
SELECT * FROM Win32_IDEController 取得IDE控制器資訊
SELECT * FROM Win32_FloppyController 取得軟碟控制機資訊
SELECT * FROM Win32_USBController 取得USB控制器資訊
SELECT * FROM Win32_SCSIController 取得SCSI控制器資訊
SELECT * FROM Win32_1394Controller 取得1394控制器資訊
SELECT * FROM Win32_PnPEnity 取得隨插即用設備資訊

特定磁碟資訊

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:"");  //查詢磁碟資訊
disk.Get();                                                                        //取得磁碟資訊
return disk.GetPropertyValue("VolumeSerialNumber").ToString();                     //返回磁碟標籤

取得螢幕解析度

SystemInformation.VirtualScreen



================= 以下為機碼操作 ====================


機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoDrives 隱藏磁碟 ...
NoThemesTab 隱藏「主題」設定頁面 1 (DWORD)
NoPropertiesMyComputer 禁用「我的電腦 -> 屬性」功能 1 (DWORD)
NoClose 隱藏「關機」功能 1
notraycontextmenu 隱藏「右鍵功能表」功能 1
LockTaskbar 禁止「開始功能表」改變位置 1

機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
NoDispScrSavPage 隱藏「螢幕保護」設定頁面 1
NoDispAppearancePage 隱藏「外觀」設定頁面 1
DisableRegistryTools 禁用「開始」功能表的「執行」 1 (DWORD)
NoRun 隱藏「開始」功能表的「執行」 1
DisableTaskMgr 禁用「工作管理員」 1
DisableCMD 禁用命令提示字元 1

隱藏磁碟

鍵值項 鍵值
NoDrives(二進位值)
00000000 (不隱藏任何磁碟)
04000000 (隱藏 C 碟)
10000000 (隱藏 F 碟)
FFFFFFFF (隱藏 所有 磁碟)
21000000 (隱藏 A、F 碟)
try
{
    RegistryKey reK = Registry.CurrentUser.CreateSubKey(@"Software"\Microsoft\Windows\CurrentVersion\Policies\Explorer");
    reK.SetValue("NoDrives",new byte[]{ 04, 00, 00, 00}, RegistryValueKind.Binary);   //隱藏 C 碟
}
catch{}

沒有留言:

張貼留言