marabu hat
hier ein Beispiel gepostet, wie man einen "Computer auswählen"-Dialog anzeigen kann. Ich hab mir erlaubt, eine Zeile zu bearbeiten.
Delphi-Quellcode:
uses ShlObj,
ActiveX;
...
function FindComputer(sPrompt:
string; csidl: word;
var sComputer:
string): boolean;
const
eMsg = '
Suchdialog konnte nicht geöffnet werden.';
var
bi: TBrowseInfo;
ca:
array [0..MAX_PATH]
of char;
pidl, pidlSelected: PItemIDList;
m: IMalloc;
begin
if Failed(SHGetSpecialFolderLocation(Application.Handle, csidl, pidl))
then
raise Exception.Create(eMsg);
try
FillChar(bi, SizeOf(bi), 0);
with bi
do begin
hwndOwner := Application.Handle;
pidlRoot := pidl;
pszDisplayName := ca;
lpszTitle := PChar(sPrompt);
ulFlags := BIF_BROWSEFORCOMPUTER;
end;
pidlSelected := SHBrowseForFolder(bi);
Result := Assigned(pidlSelected);
if Result
then
sComputer :=
String(ca);
finally
if Succeeded(SHGetMalloc(m))
then
m.Free(pidl);
end;
end;
Aufgerufen wird das ganze dann folgendermaßen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sMachine: string;
begin
if FindComputer('Wählen Sie einen Computer aus:', CSIDL_NETWORK, sMachine) then
Edit1.Text := sMachine;
end;
gruss
[edit=CalganX]Titel angepasst. Mfg, CalganX[/edit]