alomoi 发表于 2012-2-24 20:06:19

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

本帖最后由 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

netegg 发表于 2012-2-24 20:18:55

Applications using this function must have administrator rights.

需要先adjusttoken

alomoi 发表于 2012-2-26 12:49:51

表示查不到相关资料。
论坛上一个利用SetComputerName的udf也不能用...

haijie1223 发表于 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)看看改了之后的效果

alomoi 发表于 2012-2-28 14:05:51

本帖最后由 alomoi 于 2012-2-28 14:25 编辑

重启之后请再运行MsgBox(0,"",@ComputerName)看看改了之后的效果
haijie1223 发表于 2012-2-26 14:12 http://www.autoitx.com/images/common/back.gif

重启之后用@ComputerName获取的计算机名和SetComputerName的一致。
不过不知道为啥计算机属性里的计算机名未发生改变。

haijie1223 发表于 2012-2-28 18:58:39

本帖最后由 haijie1223 于 2012-2-28 19:00 编辑

你打开属性点修改看看netbios计算机名好像指的是这个

alomoi 发表于 2012-3-1 10:23:07

你打开属性点修改看看netbios计算机名好像指的是这个
haijie1223 发表于 2012-2-28 18:58 http://www.autoitx.com/images/common/back.gif

看起来想改系统-属性里的计算机名的话,还是要靠注册表啊...
感谢指导m(_ _)m
页: [1]
查看完整版本: dllcall系统api SetComputerName的问题...[已解决]