procedure TFormBackUp.SpOpenFolderClick(Sender: TObject); var S: string; SystemPath:string//为网上邻居的路径。 begin S := ''; if SelectDirectory('请选择文件夹:', SystemPath, S) then edPath.Text := S; edPath.SetFocus;end;
楼上程序要引用FileCtrl这个单元。
这是我仿照SelectDirectory的源码改写的SelectComputer函数——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单元的引用。你可以自己再做一些改造。
var
S: string;
SystemPath:string//为网上邻居的路径。
begin
S := '';
if SelectDirectory('请选择文件夹:', SystemPath, S) then
edPath.Text := S;
edPath.SetFocus;end;
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单元的引用。你可以自己再做一些改造。
SystemPath := '::{208D2C60-3AEA-1069-A2D7-08002B30309D}';
这个值是在我的注册表里找出来的,不知道是不是所有的win2000机器上都一样。