Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

Выбор имени сервера в сети   Найти похожие ветки 

 
jenya_d1   (2003-07-15 08:37) [0]

Доброго времени суток профи!!!

Есть такая проблемка: как можно считать список серверов находящихся в сети (под Win на TCP\IP) и получить нужное имя выбранное пользователем?

Заранее благодарен.

P.S.
пробовал через ShellAPI но что-то не получается передать в программу имя выбранного сервера.


 
Толик ©   (2003-07-15 12:59) [1]


как можно считать список серверов находящихся в сети

Например так:

procedure TForm1.Button5Click(Sender: TObject);
type
TNetRes = array[0..255] of TNetResource;
PNetRes = ^TNetRes;
var
hEnum: THandle;
Cnt, Size: longword;
NR: TNetRes;
i: longint;
Msg: pchar;
begin
try
Size := System.SizeOf(TNetRes);
System.FillChar(NR, Size, 0);
for i := 0 to 2 do begin
if Windows.WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @NR[0], hEnum) <> NO_ERROR then
raise TObject.Create();
Cnt := $FFFFFFFF;
if Windows.WNetEnumResource(hEnum, Cnt, @NR, Size) <> NO_ERROR then
raise TObject.Create();
end;
for i := 0 to Cnt - 1 do
ListBox1.Items.Add(NR[i].lpRemoteName);
except on E: TObject do
try
Windows.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
nil, Windows.GetLastError(), LANG_NEUTRAL shl 16, pchar(@Msg), 0, nil);
Windows.MessageBox(Application.Handle, Msg, pchar(Application.Title), MB_OK);
finally
( longint(@Msg)

как можно считать список серверов находящихся в сети

Например так:

procedure TForm1.Button5Click(Sender: TObject);
type
TNetRes = array[0..255] of TNetResource;
PNetRes = ^TNetRes;
var
hEnum: THandle;
Cnt, Size: longword;
NR: TNetRes;
i: longint;
Msg: pchar;
begin
try
Size := System.SizeOf(TNetRes);
System.FillChar(NR, Size, 0);
for i := 0 to 2 do begin
if Windows.WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @NR[0], hEnum) <> NO_ERROR then
raise TObject.Create();
Cnt := $FFFFFFFF;
if Windows.WNetEnumResource(hEnum, Cnt, @NR, Size) <> NO_ERROR then
raise TObject.Create();
end;
for i := 0 to Cnt - 1 do
ListBox1.Items.Add(NR[i].lpRemoteName);
except on E: TObject do
try
Windows.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
nil, Windows.GetLastError(), LANG_NEUTRAL shl 16, pchar(@Msg), 0, nil);
Windows.MessageBox(Application.Handle, Msg, pchar(Application.Title), MB_OK);
finally
Windows.LocalFree(longint(@Msg));
end;
end;
end;

Пример конечно не идеальный, но, надеюсь, идея понятна.



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-48724
jack128
2003-08-28 00:12
2003.09.15
Именинники 28 августа


14-48757
vasia
2003-08-26 09:19
2003.09.15
PDF


3-48397
Lina
2003-08-26 12:17
2003.09.15
Поиск по 2 полям


9-48389
Skyslider
2002-08-13 18:54
2003.09.15
Пошаговое создание платформенной стрелялки.


1-48501
hfa
2003-09-02 18:21
2003.09.15
При установки нового пакета с компонентами вылезает ошибка типа