方法對比總覽
| 方法 | 核心類/技術 | 側重點 | 特點 |
| 1 | SystemInformation | 作業系統顯示元素、設置、硬體性能 | 靜態屬性/方法,側重 Windows 環境狀態 |
| 2 | Environment | 命令列參數、環境變數、啟動時間、CLR 版本 | 動態資訊豐富(如啟動毫秒數),側重應用程式運行環境 |
| 3 | RegistryKey | 註冊表鍵值 | 最接近系統底層,可讀取任意靜態設置,但檢索不便 |
| 4 | P/Invoke API 函數 | 系統原生 API | 功能最強、可跨語言(Java 同理),但非純 C# 實現 |
程式碼結構準備
using Microsoft.Win32; // RegistryKey
using System.Runtime.InteropServices; // DllImport
using System.Text; // StringBuilder
// 聲明 API 函數範例
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern void GetSystemInfo(ref SYSTEM_INFO lpSystemInfo);
選型建議
- 常規 OS/硬體資訊 →
SystemInformation(最便利)。
- 進程/執行環境動態值 →
Environment。
- 需讀取特定註冊表設置 →
RegistryKey。
- 需呼叫系統底層功能(如記憶體狀態、磁碟配額)→ P/Invoke API。