Главная страница
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.016 c
1-48503
Bumer
2003-09-02 17:37
2003.09.15
добавить объект


1-48614
Layner
2003-09-02 15:13
2003.09.15
меню ABOUT (о программе)


1-48640
Alexey Klimov
2003-08-31 10:30
2003.09.15
Принтер и Фотошоп


1-48540
dez
2003-09-02 11:42
2003.09.15
Abstract Error


1-48516
plotn
2003-09-02 15:03
2003.09.15
нужна мемка с хайлайтингом.