Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Client for MS Networks [NT4, Win2k, WinXP]


Andrew1 ©   (2003-01-22 00:42:00) 

Подскажите, как программно определить 1) разрешен ли Client for Microsoft Network; 2) разрешен ли NetBIOS over TCP/IP для сетевого адаптера?
Спасибо.


Alex Konshin   (2003-01-22 07:47:00) [1]

Наверно, можно как-то по-другому, но и через Winsock2 тоже можно.


program Test;

{$APPTYPE CONSOLE}
uses
Windows,
SysUtils,
Winsock2;

procedure PrintProtocolInfos( AddsressFamily : Integer );
const MaxProtoInfo = 64;
var pInfo : PWSAPROTOCOL_INFO;
n, i : Integer;
len : DWORD;
pBuffer : Pointer;
begin
len := SizeOf(WSAPROTOCOL_INFO)*MaxProtoInfo;
GetMem(pBuffer,len);
try
pInfo := pBuffer;
n := WSAEnumProtocolsA( nil, pBuffer, len );
WriteLn("n=",n);
if n<0 then
begin
WriteLn( "Error on get network protocols info: "+SysUtils.SysErrorMessage(WSAGetLastError) );
Exit;
end;
if n>0 then
for i := 0 to n-1 do
begin
with pInfo^ do
if iAddressFamily=AddsressFamily then WriteLn( "Protocol "+szProtocol+" is available" );
Inc(pInfo);
end;

finally
FreeMem(pBuffer);
end;
end;

var
rWSAData : TWSAData;
begin
if WSAStartUp( $0202, rWSAData )<>0 then
WriteLn( "Can""t initialize Winsock2" )
else
try
WriteLn("NETBIOS protocols:");
PrintProtocolInfos(AF_NETBIOS);
WriteLn("IPX/SPXII protocols:");
PrintProtocolInfos(AF_IPX);
finally
WSACleanup;
end;
end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо