我用以下代码:
var
   s:array[1..127] of char;
   i: dword;
begin
   getcomputername(@s,i);
   edit1.text:=s;
end;
得到计算机名字,结果只显示"#C"这样的字符,或什么也没有?
如果是中文计算机名字,就更不可思议。
请教各位高手,还有其他方法吗?尤其是取得中文计算机名!

解决方案 »

  1.   

    function GetComputerName: AnsiString;
      var lpBuffer: array[0..MAX_PATH] of char;dwSize: DWORD;
    begin
      dwSize:= MAX_PATH;
      if not Windows.GetComputerName(lpBuffer, dwSize) then
        raise
        Exception.Create(SysErrorMessage(GetLastError()));
        Result:= StrPas(lpBuffer);
    end;
      

  2.   

    用IDIPWatch控件
    var ComputerIP,ComputerName;
    ComputerIP:=IDIPWatch1.localIP; //本地IP
    ComputerName:=IDIPWatch1.localName; //本地ComputerName
      

  3.   

    GetComputerName可以的呀,是不是你的@用错了
      

  4.   

    不是@用错了,GetComputerName确实不可靠。