Главная страница
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
9-48384
BANick
2003-03-07 20:28
2003.09.15
Люди подскажите как в ОПЕНГЛ тесктуру прозрачной сделать


4-48833
memphis
2003-07-13 18:40
2003.09.15
Эмуляция CTRL+ALT+DEL


1-48586
Alex21
2003-09-04 11:25
2003.09.15
Работа с регистром


3-48457
Ник
2003-08-23 23:10
2003.09.15
Halcyon


3-48447
sash2
2003-08-25 08:12
2003.09.15
Копирование из одного Dbf файла в другой Dbf файл.