c#獲取計算機全名的方法
阿新 • • 發佈:2019-02-16
在大多數情況下windows的計算機名和計算機全名是相同的,但是在計算機加入域或者手動設定主DNS字尾之後就會產生不同,正在做的專案需要顯示出系統的系統資訊,內容和計算機屬性的內容基本相同,其他內容均由WMI查詢得出,但是並沒有找到記錄計算機全名的WMI類的屬性,要是有人知道希望可以回覆一下。
最終的解決辦法為使用Windows API。
COMPUTER_NAME_FORMAT決定獲得的計算機名稱型別,ComputerNamePhysicalDnsFullyQualified為完整的計算機全名。
class Class { enum COMPUTER_NAME_FORMAT { ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified } [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] static extern bool GetComputerNameEx(COMPUTER_NAME_FORMAT NameType, out StringBuilder lpBuffer, ref uint lpnSize); [STAThread] static void Main(string[] args) { bool success; StringBuilder name = new StringBuilder(100); uint size = 100; success = GetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsFullyQualified, name, ref size); Console.WriteLine(name.ToString()); } }