通过浏览的方式进行
问题:能看到计算机名字,怎么取出来
下面是我得代码
请指正
procedure TfrmSetOperationStations.bbBrowseClick(Sender: TObject);
var
  info:TBrowseInfo;
  ItemIDList:pItemIDList;
  Path:array[0..MAX_PATH] of char;
  dispName:array[0..MAX_PATH] of char;begin
FillChar(info,sizeof(TBrowseInfo),#0);
info.hwndOwner :=self.Handle;
info.lpszTitle :=‘浏览计算机';
info.pszDisplayName :=@dispName;
info.ulFlags :=BIF_BROWSEFORCOMPUTER or BIF_STATUSTEXT;
ItemIDList:=SHBrowseForFolder(info);
SHGetPathFromIDList(ItemIDList,Path);
EditComputerName.Text :=StrPas(Path);
end;

解决方案 »

  1.   

    EditComputerName是一个Edit控件的名字
    先谢谢了
      

  2.   

    只记得获得本机器名是:getcomputername(a,b),你去查查api函数吧,应该有的
      

  3.   

    看你的代码好像是放在了变量ItemIDList种,
    这个变量应该有ItemIDList.item[0].Text一类的方法或者是属性,
    你试试吧,另外给你一个通过ip获得name的方法可以根据ip获得计算机名称
    例如:procedure TForm1.Button1Click(Sender: TObject);
    var wVersionRequested:WORD;
        wsaData:TWSAData;
        p:THOSTENT;
        s:array [0..128] of byte;
        p2:PChar;
        SockAddrIn:sockaddr_in;
        hostent:PHostEnt;
    begin
        WSAStartup($101, wsaData);
        SockAddrIn.sin_addr.s_addr:= inet_addr('192.168.10.181');
        HostEnt:= GetHostByAddr(@SockAddrIn.sin_addr.s_addr, 4, AF_INET);
        if (HostEnt<>nil)then
            ShowMessage(strpas(HostEnt.h_name));
        WSACleanup;
    end;