找回密码
 加入
搜索
查看: 2397|回复: 6

[系统综合] dllcall系统api SetComputerName的问题...[已解决]

  [复制链接]
发表于 2012-2-24 20:06:19 | 显示全部楼层 |阅读模式
本帖最后由 alomoi 于 2012-3-1 10:23 编辑

http://msdn.microsoft.com/en-us/library/ms724930(v=VS.85).aspx

尝试按照帮助文档里的方法调用了一下SetComputerName,不过返回值为空,重启电脑之后计算机名也没有变化,应该是没有成功。
$Result = DllCall("Kernel32.dll","BOOL","SetComputerName","str","test")

求前辈指教m(_ _)m
发表于 2012-2-24 20:18:55 | 显示全部楼层
Applications using this function must have administrator rights.

需要先adjusttoken
 楼主| 发表于 2012-2-26 12:49:51 | 显示全部楼层
表示查不到相关资料。
论坛上一个利用SetComputerName的udf也不能用...
发表于 2012-2-26 14:12:26 | 显示全部楼层
本帖最后由 haijie1223 于 2012-2-26 14:14 编辑

Local $test
MsgBox(0,"",@ComputerName);看看没改之前的计算机名
$test=DllCall("KERNEL32.DLL","BOOL","SetComputerNameA","Str","NewName")
If @error = 0 Then
        MsgBox(0,"","成功")
Else
        MsgBox(0,"",@error)
EndIf
;~ 成功: @error = 0. 
;~ 失败: 设置 @error 
;~ @error: 
;~  1 不能使用这个DLL文件, 
;~  2 未知 "返回值类型",  
;~  3 未在DLL文件中找到这个"函数". 
;~  4 参数数量错误. 
;~  5 无效参数. 

重启之后请再运行MsgBox(0,"",@ComputerName)看看改了之后的效果
 楼主| 发表于 2012-2-28 14:05:51 | 显示全部楼层
本帖最后由 alomoi 于 2012-2-28 14:25 编辑
重启之后请再运行MsgBox(0,"",@ComputerName)看看改了之后的效果
haijie1223 发表于 2012-2-26 14:12


重启之后用@ComputerName获取的计算机名和SetComputerName的一致。
不过不知道为啥计算机属性里的计算机名未发生改变。
发表于 2012-2-28 18:58:39 | 显示全部楼层
本帖最后由 haijie1223 于 2012-2-28 19:00 编辑

你打开属性  点修改  看看  netbios计算机名  好像指的是这个
 楼主| 发表于 2012-3-1 10:23:07 | 显示全部楼层
你打开属性  点修改  看看  netbios计算机名  好像指的是这个
haijie1223 发表于 2012-2-28 18:58


看起来想改系统-属性里的计算机名的话,还是要靠注册表啊...
感谢指导m(_ _)m
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 19:30 , Processed in 0.082954 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表