偶在做一个客户/服务机的小程序,
想在客户端点击按钮然后打开浏览计算机的对话框,
偶想应该有API函数的,希望大虾们赐教。

解决方案 »

  1.   

    function SelectComputer(Caption: String = ''; Handle: HWND = 0): String;
    var
      Buffer: array[0..MAX_PATH] of Char;
      Browse: TBrowseInfo;
      Root: PItemIDList;
    begin
      if Handle = 0 then Handle := Application.MainForm.Handle;
      if Trim(Caption) = '' then Caption := '请选择计算机';
      FillChar(Buffer, SizeOf(Buffer), 0);
      FillChar(Browse, SizeOf(Browse), 0);
      SHGetSpecialFolderLocation(Handle, CSIDL_NETWORK, Root);
      with Browse do
      begin
        hwndOwner := Handle;
        pidlRoot := Root;
        pszDisplayName := Buffer;
        lpszTitle := PChar(Caption);
        ulFlags := BIF_BROWSEFORCOMPUTER;
      end;
      if ShBrowseForFolder(Browse) = nil then Result := ''
      else Result := StrPas(Buffer);
    end;——使用的时候要加上对ShlObj单元的引用。
      

  2.   

    uses QDialogs;
    var
      vDirectory: WideString;
    begin
      SelectDirectory('请选择计算机',
        '::{208D2C60-3AEA-1069-A2D7-08002B30309D}', vDirectory);
    end;
      

  3.   

    感谢两位大虾的关注,
    偶已经解决了,
    是用SAMPLE中的控件完成的。
    在事件中加点代码就搞定了,
    而且可以按照自己的意愿来修改,
    还不错。 : )