 |
下面是一个例子:
uses ShellAPI, ShlObj;
procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Please specify a directory';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;
caiyt问:
怎样才能通过SHBrowseForFolder函数实现只选择计算机?
答:关键在BROWSEINFO结构的ulFlags,如果是BIF_BROWSEFORCOMPUTER则只选择计算机,如果是BIF_BROWSEFORPRINTER,则只选择打印机。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, 磁盘、文件和目录, disk, file, fat, directory, folder。
|