欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

使用C#獲取系統關鍵信息:CPU、內存、硬盤、用戶與網絡狀態

admin
2024年10月17日 23:5 本文熱度 433

在C#中,獲取系統信息如CPU、內存、硬盤、用戶以及網絡狀態等,可以通過多種方式實現,包括使用System.Management命名空間中的類來查詢WMI(Windows Management Instrumentation)信息,或者使用.NET Framework自帶的類庫。以下是一些基本示例來展示如何獲取這些信息。

1. 引入必要的命名空間

首先,確保項目中引入了必要的命名空間。對于WMI查詢,需要引入System.Management。

using System;using System.Management; // 需要添加對System.Management的引用using System.Collections.Generic;

2. 獲取CPU信息

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
foreach (ManagementObject obj in searcher.Get()){    Console.WriteLine("Name: " + obj["Name"]);    Console.WriteLine("CurrentClockSpeed: " + obj["CurrentClockSpeed"]);    // 還可以獲取更多屬性,如NumberOfCores, NumberOfLogicalProcessors等}

3. 獲取內存信息

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");

foreach (ManagementObject obj in searcher.Get()){    Console.WriteLine("Capacity: " + obj["Capacity"]);    // 注意Capacity的單位是字節,可能需要轉換成KB、MB或GB}
// 獲取總物理內存(MB)ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT TotalVisibleMemorySize FROM Win32_OperatingSystem");foreach (ManagementObject mo in mos.Get()){    Console.WriteLine("Total Physical Memory: " + (Convert.ToDouble(mo["TotalVisibleMemorySize"]) / 1024 / 1024) + " MB");}

4. 獲取硬盤信息

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3"); // 3 代表本地硬盤
foreach (ManagementObject mo in searcher.Get()){    Console.WriteLine("Disk Name: " + mo["Name"]);    Console.WriteLine("Total Size: " + (Convert.ToDouble(mo["Size"]) / 1024 / 1024 / 1024) + " GB");    Console.WriteLine("Free Space: " + (Convert.ToDouble(mo["FreeSpace"]) / 1024 / 1024 / 1024) + " GB");}

5. 獲取當前用戶信息

通常,獲取當前登錄的用戶信息不需要WMI,可以使用.NET Framework的類。

System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);// 在Windows Vista及以上版本,可以使用IsInRole來判斷用戶是否屬于某個組bool isAdmin = principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
Console.WriteLine("User Name: " + identity.Name);Console.WriteLine("Is Admin: " + isAdmin);

6. 獲取網絡狀態

獲取網絡狀態比較復雜,因為涉及到多個方面,如網絡接口、IP地址、是否連接等。以下是一個獲取網絡接口列表的示例。

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus = 2"); // 2 代表已連接
foreach (ManagementObject obj in searcher.Get()){    Console.WriteLine("Adapter Name: " + obj["Name"]);    // 可以獲取更多屬性,如MAC地址、IP地址等}

注意:WMI查詢可能需要管理員權限,特別是在訪問某些敏感信息時。

此外,對于網絡狀態的詳細查詢(如IP地址、DNS信息等),可能需要使用Win32_NetworkAdapterConfiguration類或其他相關WMI類。


該文章在 2024/10/19 12:12:17 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved