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());
        }
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光晒谷q(≧▽≦q)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值