告诉我如何获取本机名称的API函数,以及调用方式,成功实现后给分!!

解决方案 »

  1.   

    int gethostname (    char FAR * name,
        int namelen
       );
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var ClassName,TitleName:array[0..MAX_PATH-1] OF CHAR;
    begin
     gethostname(ClassName,MAX_PATH);
     showmessage(StrPas(className));
    end;
      

  3.   

    我把你的代码敲进去后执行时,它出现不认识"gethostname"的提示,是不是要在Interface的Uses子句中加入某个单元文件。
      

  4.   

    通过IP地址得到机器名   
    function iptoname(ip:string):string;
    var
    WSAData:TWSAData;
    p:PHostEnt;
    InetAddr:dword;
    begin
    WSAStartup(2, WSAData);
    InetAddr:= inet_addr(PChar(IP));
    try
    p:=GetHostByAddr(@InetAddr, Length(IP), PF_Inet);
    result:=p^.h_name;
    except
    result:='';
    end;
    end;  
      

  5.   

    好象叫GetComputerName()吧,记不清了
      

  6.   

    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;
      

  7.   

    通过IP地址得到机器名,我如果不知IP地址的话岂不是还要先获得该机器的IP地址,当然如果实在没有办法直接获得机器名的而可直接获得的IP的话,那这样还成。所以我还是先试试“石头_”的办法。   
      

  8.   

    石头_,你的方法的确有效,我想进一步弄明白,lpBuffer被定义为 array[0..MAX_PATH] of char;有没有可替代的方式,
      

  9.   

    var
      computername:pchar;
      size0:cardinal;
    procedure Form1.Formcreate(sender:Tobject);
    begin
      size0:=100;
      getmem(computername,size0);
      getcomputername(computername,size0);
    end;
      

  10.   

    function GetComputerName(lpBuffer: PChar; var nSize: DWORD)