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

Вниз

Как программно узнать каким юзером занят файл?   Найти похожие ветки 

 
werr   (2002-07-09 16:41) [0]

Уже задавал этот вопрос, но ответа так и не получил.
С NetFileEnum разобраться не получилось (день потратил :( )
Приведите, пожалуйста, работающий пример (и не ругайте за такую просьбу :) ).


 
werr   (2002-07-12 09:37) [1]

help!
Неужто никто не знает как это сделать?


 
Eugene Lachinov ©   (2002-07-12 19:00) [2]

Компилиться не будет, но решение, надеюсь да.

FLibHandle : THandle;

type
TFileInfo3 = packed record
fi3_id : DWORD;
fi3_permissions : DWORD;
fi3_num_locks : DWORD;
fi3_pathname : PWChar;
fi3_username : PWChar;
end;
PFileInfo3 = ^TFileInfo3;

TFileInfo3Array = array[0..$1000] of TFileInfo3;
PFileInfo3Array = ^TFileInfo3Array;

var
NetFileEnumNT : function (servername : PWChar;
basepath : PWChar;
username : PWChar;
level : DWORD;
bufptr : Pointer;
prefmaxlen : DWORD;
entriesread : LPDWORD;
totalentries : LPDWORD;
resume_handle : LPDWORD) : DWORD; stdcall;

NetApiBufferFreeNT : function (var Buffer : Pointer) : DWord; stdcall;

procedure TMainForm.SearchNT;
var
i : Integer;
pBuf : PFileInfo3Array;
wsServerName : WideString;
entriesread : DWORD;
totalentries : DWORD;
sPath, sFileName : string;
begin
@NetFileEnumNT := GetProcAddress(FLibHandle, "NetFileEnum");
@NetApiBufferFreeNT := GetProcAddress(FLibHandle, "NetApiBufferFree");
wsServerName := "\\" + ComputerEdit.Text;
sFileName := StUpcase(FileNameEdit.Text);
pBuf := nil;
if NetFileEnumNT(PWChar(wsServerName), nil, nil, 3, @pBuf, DWORD(-1),
@entriesread, @totalentries, nil) = 0 then try
for i := 0 to entriesread - 1 do begin
sPath := string(pBuf^[i].fi3_pathname);
if Pos(sFileName, StUpcase(sPath)) > 0 then
with FileList.Add do begin
Strings[0] := string(pBuf^[i].fi3_username);
Strings[1] := sPath;
end
end
finally
NetApiBufferFreeNT(Pointer(pBuf));
end else
Win32Check(False)
end;

FLibHandle := LoadLibrary("NETAPI32.DLL");
if FLibHandle <> 0 then try
SearchNT
finally
FreeLibrary(FLibHandle)
end



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
4-51023
SPeller
2002-07-24 19:08
2002.09.16
CreateToolbarEx


1-50829
Канадин Владимир
2002-09-03 13:20
2002.09.16
Поднять MDI окно


1-50808
From_NN
2002-09-03 17:44
2002.09.16
Кто ковырял RTF?


7-51009
dlK
2002-07-04 16:44
2002.09.16
TApplicationService и TTimer, парюсь 2-ой день. =((


3-50609
Sword
2002-08-26 14:16
2002.09.16
Выборка по символу в записи!!