procedure TForm1.BitBtn1Click(Sender: TObject);
var
computername:pchar;
begin
if SetComputerName(PChar(labelededit1.Text )) then
    ShowMessage('您的计算机已改名为'+labelededit1.Text)
 else
    ShowMessage('改名失败');
end;
end.怎么改过以后,提示成功,但在计算机名称更改的地方看还是原来的名字呢?重启后还是一样的。但是使用GetComputerName 就能获取刚才更改的名字了请高手指点一下。谢谢。

解决方案 »

  1.   

    SetComputerName只改了注册表下面2个地方的键值。
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName\ComputerName
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName-----------------------------------------
    还有2个地方需要同时修改:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\NV Hostname
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname
    这2个地方自己写代码修改一下就好了。