вот код,все как в примерах,но в результате структура FileInfo ничего не содержит в себе сама ф-ция возвращает ноль,то бишь она выполняется,расшаринных ресурсов полно,т.к. я запускаю на нашем рабочем сервере.объясните,пожалуйста,в чем ошибка,ге я не то сделал
| Код | type TFileInfo = packed record fi3_id:dword; fi3_permision:dword; fi3_num_lock:dword; fi3_pathname:pwchar; fi3_username:pwchar; end; PFileInfo=^TFileInfo; TFileInfoArrey=array [1..512]of TFileInfo; PFileInfoArrey=^TFileInfoArrey;
function GetNetFile(FileName:string):string; var LibH,hFile:THandle; //hFile:dword; FileInfo:PFileInfoArrey; basename:pwchar; buf:pointer; TotalEntries,EntriesReadNT: DWORD; EntriesRead,TotalAvial: Word; i,poz:integer; str,str1:string; iSize:integer; begin LibH:=LoadLibrary('NETAPI32.DLL'); if LibH=0 then exit; @NewNetFileEnum := GetProcAddress(LibH, 'NetFileEnum'); if not Assigned(NewNetFileEnum) then begin FreeLibrary(LibH); Exit; end; FileInfo := nil; Unit1C.EnablePrivilegeEx(getCurrentProcess(),'SeDebugPrivilege');//установка привилегии if NewNetFileEnum(nil,nil,nil,3,@FileInfo,DWORD(-1),@EntriesReadNT, @totalentries, nil)=0 then begin for i:=0 to EntriesReadNT-1 do begin with Unit1.Form1.NetList.Items.Add do //Заполнение данными из структуры begin Caption := string(IntToStr(FileInfo^[i].fi3_id)); //Идентификатор SubItems.Add(FileInfo^[i].fi3_pathname); //Путь к файлу SubItems.Add(FileInfo^[i].fi3_username); //Имя пользователя end; end; end;
|
|