Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Хочу выбрать компьютер, но приведённый код выдаёт пустую строку!   Найти похожие ветки 

 
Alexander ©   (2002-10-04 11:16) [0]

В чём может быть дело?

function OpenDirExecute(Title: string; var Dir: string): Boolean;
var
BI: TBrowseInfo;
Browse: PItemIdList;
DisplayName : array[0..MAX_PATH] of Char;
TempPath: array[0..MAX_PATH] of Char;
begin
Result := False;
ZeroMemory(@BI, SizeOf(TBrowseInfo));
BI.hwndOwner := Applet.Handle;

SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, BI.pidlRoot);
try
BI.pszDisplayName := @DisplayName;
BI.lpszTitle := PChar(Title);
BI.ulFlags := BIF_BROWSEFORCOMPUTER or BIF_BROWSEINCLUDEFILES or BIF_SHAREABLE;
Browse := SHBrowseForFolder(BI);
if Browse <> nil then
begin
SHGetPathFromIDList(Browse, TempPath);
Dir := TempPath;
CoTaskMemFree(Browse);
Result := True;
end;
finally
CoTaskMemFree(BI.pidlRoot);
end;
end;


 
Marcus   (2002-10-04 11:41) [1]

Вот 100% работающий пример:

function BrowseForComputer(Handle: HWND; var ComputerName: String): boolean;
var
BrowseInfo: TBrowseInfo;
Buffer: PChar;
RootItemIDList, ItemIDList: PItemIDList;
ShellMalloc: IMalloc;
begin
Result := false;
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
try
SHGetSpecialFolderLocation(0, CSIDL_NETWORK, RootItemIDList);
with BrowseInfo do
begin
hwndOwner := Handle;
pidlRoot := RootItemIDList;
pszDisplayName := Buffer;
lpszTitle := "Выберите компьютер:";
ulFlags := BIF_BROWSEFORCOMPUTER;
end;
ItemIDList := SHBrowseForFolder(BrowseInfo);
if ItemIDList <> nil then
begin
ComputerName := Buffer;
ShellMalloc.Free(ItemIDList);
Result := true;
end;
finally
ShellMalloc.Free(Buffer);
end;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
3-45757
Andy Eremin
2002-10-25 07:39
2002.11.14
Свойство Expression компонента QRExpr


3-45764
Старый НавичЁк
2002-10-25 13:06
2002.11.14
Обновление данных... как мне сказать об ентом клаенту?


1-45920
Александр
2002-10-31 06:13
2002.11.14
разработка help приложений


3-45770
oomneeq
2002-10-25 15:59
2002.11.14
Конфигурируемый импорт данных


1-45886
Брат
2002-11-05 17:04
2002.11.14
Как остановить выполнение программы на определенный промежуток...