c#获取计算机全名的方法

在大多数情况下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());
        }
    }

你可能感兴趣的:(C#,c#)