鸟人 发表于 2010-10-18 09:09:04

修改计算机名的 API 函数 SetComputerName

;~ 设置一个新的本地计算机的NetBIOS名称。这个名字是存储在注册表和更改名称生效在下次用户重新启动计算机。

;~ 如果本地计算机是在一个群集节点,SetComputerName设置本地计算机的NetBIOS名称,而不是群集的虚拟服务器。

;~ 要设置DNS主机名称或DNS域名,调用SetComputerNameEx功能

;~ BOOL WINAPI SetComputerName(
;~   __inLPCTSTR lpComputerName
;~ );
;~ http://msdn.microsoft.com/en-us/library/ms724930(v=VS.85).aspx

;~ 参数
;~ lpComputerName
;~ 计算机名称将生效在下一次启动计算机。该名称不能长于MAX_COMPUTERNAME_LENGTH字符。

;~ 标准字符集包括字母,数字和符号如下:! @#$%^&')( - 。_ {}?如果此参数包含一个或多个字符以外的字符集标准,SetComputerName返回ERROR_INVALID_PARAMETER。。

;~ 返回值
;~ 如果函数成功,返回值是一个非零值。

;~ 如果函数失败,返回值为零。为了获得更多的错误信息,调用GetLastError函数。

;~ 备注
;~ 使用这个程序的功能必须有管理员权限。




;~ 设置一个新的NetBIOS或本地计算机的DNS名称。由SetComputerNameEx作出更改名称不会生效,直到用户重新启动计算机。

;~ BOOL WINAPI SetComputerNameEx(
;~   __inCOMPUTER_NAME_FORMAT NameType,
;~   __inLPCTSTR lpBuffer
;~ );
;~ http://msdn.microsoft.com/en-us/library/ms724931(VS.85).aspx




;~ 参数

;~ NameType

;~ name的类型进行设置。这个参数可以从以下COMPUTER_NAME_FORMAT枚举类型值之一。

;~ 值含义
;~ ComputerNamePhysicalDnsDomain设置计算机的主DNS后缀。
;~
;~ ComputerNamePhysicalDnsHostname设置NetBIOS和计算机的名称(完整的DNS名称的第一个标签)在lpBuffer指定的名称。如果名称超过MAX_COMPUTERNAME_LENGTH字符,NetBIOS名称被截断为MAX_COMPUTERNAME_LENGTH字符,不包括终止空字符。
;~
;~ ComputerNamePhysicalNetBIOS设置NetBIOS名称在lpBuffer指定的名称。该名称不能超过MAX_COMPUTERNAME_LENGTH字符,不包括终止空字符。

;~ 警告:使用此选项来设置NetBIOS名称打破了相互依存的NetBIOS和DNS名称的惯例。应用程序使用DnsHostnameToComputerName函数来获得从第一个标签DNS名称的NetBIOS名称将失败,如果这个约定被打破了。

;~ lpBuffer

;~ 新的名称。该名称不能包含控制字符,前导或尾随空格,或任何以下字符:“/ \ []:|”> + =;,?

;~ 返回值
;~ 如果函数成功,返回值是一个非零值。

;~ 如果函数失败,返回值为零。为了获得更多的错误信息,调用GetLastError函数。

;~ 备注
;~ SetComputerNameEx可以设置计算机的名称(完整DNS名称的第一个标签)或主DNS后缀的本地计算机。它不能在一个调用一个完全合格的DNS名称。

;~ 如果本地计算机是在一个群集节点,SetComputerNameEx的NetBIOS或DNS设置在本地计算机的名称,而不是群集的虚拟服务器。

;~ 这个过程调用SetComputerNameEx函数必须具有在本地计算机上的管理员特权。

;~ 要编译的应用程序使用此功能,定义为0x0500或更高_WIN32_WINNT。有关详细信息,请参阅使用Windows头文件

qqgghh1 发表于 2010-10-18 11:30:04

well done ,Thank youLZ

jonyzhr 发表于 2010-10-27 08:44:33

不懂API,希望能写出具体代码,谢谢!

831221 发表于 2010-12-6 17:13:28

收藏了 研究下
支持一下,学习

kaige 发表于 2010-12-8 15:42:49

楼主讲的真细,学习了

wxyyabc 发表于 2010-12-9 15:25:46

好东东,谢谢分享。有段时间没来论坛了!

wsmoxiannan 发表于 2012-2-26 14:50:59

很详细,学习了

redapple2008 发表于 2012-2-27 13:09:36

看来太多了,有点乱呀!

xlj310 发表于 2012-3-20 09:59:31

有点意思,不过掉用起来还是有点难

guti_8014 发表于 2013-3-8 14:07:59

非常详细的资料,收藏了!

cuihairu 发表于 2013-3-15 14:53:09

不知道怎么用,还望明示
页: [1]
查看完整版本: 修改计算机名的 API 函数 SetComputerName