Главная страница
    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.031 c
1-41534
P0tia
2003-11-04 12:21
2003.11.13
Image, путь к иконке


3-40853
Vadim S
2003-10-21 12:56
2003.11.13
Транзакция MS SQL через ADO


3-40864
denmin
2003-10-20 13:31
2003.11.13
выборка в MS SQL2000


3-40952
P0tia
2003-10-17 13:23
2003.11.13
Есть такая проблема.


7-42147
наблюдатель
2003-09-01 18:12
2003.11.13
WH_SHELL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский