Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Показать диалог выбора домена

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Показать диалог выбора домена

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  If you are developing network software for Windows NT, 
  you usually need to ask the user to select a computer or domain 
  he wants to connect/login. 
}

 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(0, wCompName, MAX_COMPUTERNAME_LENGTH + 1) then
     ShowMessage(wCompName)
   else
     ShowMessage('no computer selected');
 end;

 {***************************}

 // Show the ServerBrowseDialogA0 Dialog 

type
   TServerBrowseDialogA0 = function(hwnd: HWND; pchBuffer: Pointer;
     cchBufSize: DWORD): bool;
   stdcall;

 function ShowServerDialog(AHandle: THandle): string;
 var
   ServerBrowseDialogA0: TServerBrowseDialogA0;
   LANMAN_DLL: DWORD;
   buffer: array[0..1024] of char;
   bLoadLib: Boolean;
 begin
   LANMAN_DLL := GetModuleHandle('NTLANMAN.DLL');
   if LANMAN_DLL = 0 then
   begin
     LANMAN_DLL := LoadLibrary('NTLANMAN.DLL');
     bLoadLib := True;
   end;
   if LANMAN_DLL <> 0 then
   begin @ServerBrowseDialogA0 := GetProcAddress(LANMAN_DLL, 'ServerBrowseDialogA0');
     DialogBox(HInstance, MAKEINTRESOURCE(101), AHandle, nil);
     ServerBrowseDialogA0(AHandle, @buffer, 1024);
     if buffer[0] = '\' then
     begin
       Result := buffer;
     end;
     if bLoadLib then
       FreeLibrary(LANMAN_DLL);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   label1.Caption := ShowServerDialog(Form1.Handle);
 end;

Статья Показать диалог выбора домена раздела Программа и Интерфейс Диалоги и Фреймы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Диалоги и Фреймы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-04-24 22:55:34
2024-04-25 13:29:05/0.0065641403198242/2