const
FOCUSDLG_DOMAINS_ONLY = 1;
FOCUSDLG_SERVERS_ONLY = 2;
FOCUSDLG_SERVERS_DOMAINS = 3;
FOCUSDLG_BROWSE_LOGON_DOMAIN = $00010000;
FOCUSDLG_BROWSE_WKSTA_DOMAIN = $00020000;
FOCUSDLG_BROWSE_OTHER_DOMAINS = $00040000;
FOCUSDLG_BROWSE_TRUSTING_DOMAINS = $00080000;
FOCUSDLG_BROWSE_WORKGROUP_DOMAINS = $00100000;
FOCUSDLG_BROWSE_ALL_DOMAINS = FOCUSDLG_BROWSE_LOGON_DOMAIN
or
FOCUSDLG_BROWSE_WKSTA_DOMAIN
or FOCUSDLG_BROWSE_OTHER_DOMAINS
or
FOCUSDLG_BROWSE_TRUSTING_DOMAINS
or FOCUSDLG_BROWSE_WORKGROUP_DOMAINS;
function SystemFocusDialog(hwndOwner: HWND; dwSelectionFlag: UINT;
wszName: PWideChar; dwBufSize: DWORD;
var bOKPressed: Boolean;
wszHelpFile: PWideChar; dwContextHelpId: DWORD): DWORD;
stdcall;
external '
ntlanman.dll'
Name '
I_SystemFocusDialog';
function ComputerBrowser(hWndParent: HWND; wCompName: PWideChar;
dwBufLen: DWORD): Boolean;
var
dwError: DWORD;
begin
Result := False;
dwError := SystemFocusDialog(hWndParent, FOCUSDLG_SERVERS_DOMAINS
{or
FOCUSDLG_BROWSE_ALL_DOMAINS},
wCompName, dwBufLen, Result,
nil, 0);
if dwError <> NO_ERROR
then Exit;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
wCompName:
array [0..MAX_COMPUTERNAME_LENGTH + 1]
of WideChar;
begin
if ComputerBrowser(
Handle, wCompName, MAX_COMPUTERNAME_LENGTH + 1)
then
ShowMessage(wCompName)
else
ShowMessage('
no computer selected');
end;