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

Вниз

Как использовать функции NetFileGetInfo и netFileEnum   Найти похожие ветки 

 
waw   (2003-09-03 19:11) [0]

Как использовать функции NetFileGetInfo и netFileEnum для определения пользователя, которым был открыт файл?


 
Игорь Шевченко   (2003-09-04 10:14) [1]

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

procedure TfrmMain.PrintNetFiles;
type
PFileInfo3 = ^TFileInfo3;
var curw : PFileInfo3;
bufw : Pointer;
rc, read, total, resumeh : Cardinal;
I : Integer;
LI : TListItem;
begin
lvFiles.Items.Clear();
resumeh := 0;
repeat
bufw := nil;
rc := NetFileEnum(LPWSTR(FServerName), nil, nil, 3,
bufw, 2048, read, total, @resumeh);
if (rc <> ERROR_MORE_DATA) AND (rc <> ERROR_SUCCESS) then
Break;
curw := PFileInfo3(bufw);
for I:=0 to Pred(read) do begin
LI := lvFiles.Items.Add();
LI.Caption := curw^.fi3_username;
LI.SubItems.Add(curw^.fi3_pathname);
Inc(curw);
end;
if bufw <> nil then
NetApiBufferFree(Pointer(bufw));

until rc <> ERROR_MORE_DATA;
if (rc <> ERROR_SUCCESS) then
RaiseLastWin32Error;
end;


 
waw   (2003-09-04 12:30) [2]

type
TFILE_INFO_2 = record
fi2_id: DWORD;
end;

TFILE_INFO_3 = record
fi3_id: DWORD;
fi3_permissions: DWORD;
fi3_num_locks: DWORD;
fi3_pathname: LPTSTR;
fi3_username: LPTSTR;
end;

PFILE_INFO_3 = ^TFILE_INFO_3;

function NetFileEnum(
servername: PChar;
basepath: PChar;
username: PChar;
level: DWORD;
bufptr: Pointer;
prefmaxlen: DWORD;
var entriesread: DWORD;
totalentries: DWORD;
resume_handle: DWORD
): DWORD; stdcall; external NetAPI32 name "NetFileEnum";


Описание функции примерно такое?


 
Игорь Шевченко   (2003-09-04 12:41) [3]

type
NET_API_STATUS = Integer;

PFileInfo2 = ^TFileInfo2;
_FILE_INFO_2 = record
fi2_id: DWORD;
end;
TFileInfo2 = _FILE_INFO_2;
FILE_INFO_2 = _FILE_INFO_2;

PFileInfo3 = ^TFileInfo3;
_FILE_INFO_3 = record
fi3_id: DWORD;
fi3_permissions: DWORD;
fi3_num_locks: DWORD;
fi3_pathname: LPWSTR;
fi3_username: LPWSTR;
end;
TFileInfo3 = _FILE_INFO_3;
FILE_INFO_3 = _FILE_INFO_3;

TNetFileEnum = function (servername: LPWSTR; basepath: LPWSTR; username: LPWSTR;
level: DWORD; var bufptr: Pointer; prefmaxlen: DWORD; var entriesread: DWORD;
var totalentries: DWORD; resume_handle: PDWORD): NET_API_STATUS; stdcall;


 
waw   (2003-09-04 12:56) [4]

System ERROR code:997
Протекает наложенное событие ввода/вывода.


 
waw   (2003-09-04 12:58) [5]

Может по аське? 107640544


 
waw   (2003-09-04 13:13) [6]

Огромное спасибо. Все заработало, разобрался.


 
waw   (2003-09-04 14:05) [7]

И все-таки ошибка:
System ERROR code:997
Протекает наложенное событие ввода/вывода.
Возникает на некоторых серверах. С чем это может быть связано?


 
Игорь Шевченко   (2003-09-04 14:57) [8]

К файлу наверное кто-то обращается в момент перечисления...


 
waw   (2003-09-04 15:28) [9]

Если запускать локаольно такой ошиблки не дает.
И еще какого типа у тебя FServerName. Мне не удается переменную передать в эту процедуру.


 
Игорь Шевченко   (2003-09-04 16:01) [10]

FServerName : WideString;



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

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

Наверх




Память: 0.46 MB
Время: 0.097 c
3-40888
User_OKA
2003-10-17 06:40
2003.11.13
Создание тригера.


14-41918
SFASS
2003-10-21 12:02
2003.11.13
Бесплатный Хостинг С PHP


7-42206
DVM
2003-09-04 18:11
2003.11.13
Где в Windows хранится обозначение года (г.) на текущем языке.


1-41474
MoGiLsHiKK
2003-10-24 15:03
2003.11.13
messagedlg +timer+random


14-42117
Vlad Oshin
2003-10-24 14:45
2003.11.13
Не кажется ли Вам, что Достоевский доказал вину...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский