![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Net Share [D6, WinXP]
sirin © (2004-09-16 18:02:00)Для поиска шар в сети использую ф-цию NetShareEnum
Обьявление:function NetShareEnum(ServerName: LPWSTR;
Level: DWORD; BufPtr: Pointer; prefmaxlen: DWORD;
var entriesread, totalentries, resume_handle: DWORD): DWORD; stdcall;
external 'Netapi32.dll' name 'NetShareEnum';
Использование
var
Buf: pSHARE_INFO_0;
entriesread, totalentries, resume_handle: DWORD;
ServerName: PWideChar;
e: Dword;
I: integer;
begin
lbxShares.Clear;
entriesread := 0;
totalentries := 0;
resume_handle := 0;
GetMem(ServerName, 2*Length(edit1.Text) + 2);
StringToWideChar(edit1.Text, ServerName, Length(edit1.Text)*2 + 2);
e := NetShareEnum(ServerName, 0, @Buf, DWORD(-1), entriesread, totalentries, resume_handle);
if (e = NO_ERROR) or (e = ERROR_MORE_DATA) then
begin
for i := 0 to totalentries - 1 do
begin
lbxShares.Items.Add(Buf^[i].shi0_netname);
end;
end;
FreeMem(ServerName);
end;
Передаваемая структура :
type
_SHARE_INFO_0 = record
shi0_netname: LPWSTR;
end;
SHARE_INFO_0 = array [0..511] of _SHARE_INFO_0;
PSHARE_INFO_0 = ^SHARE_INFO_0;
Шары находит, но только на машинах NT
Что нужно сделать, чтобы искать и на NT и на 9X?
Подозреваю, что нужно использовать другую структуру, но при собственных экспериментах результата не добился, а в хелпе по этому ничего нет :(
Rouse_ (2004-09-16 20:35:00) [1]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1091738810&n=4
5-й пост...