![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.