Форум: "Сети";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Вниз
Как программно узнать каким юзером занят файл? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c