Главная страница
    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.027 c
3-40975
Tumcoat
2003-10-16 04:39
2003.11.13
Удаление временных dbf-файлов


1-41300
zapped
2003-10-31 10:19
2003.11.13
Run


3-40999
Ord3f8h
2003-10-16 14:39
2003.11.13
Помогите по работе с MySQl


1-41659
MaG
2003-10-25 05:56
2003.11.13
Бегущая сторка


3-40842
Jony
2003-10-21 18:18
2003.11.13
Как программно снять выделение записи в DBGridEh?





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