Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
3-50639
Nikolai_S
2002-08-26 18:47
2002.09.16
Сжатие базы данных MS Access


14-50930
kirve
2002-08-21 12:39
2002.09.16
Дельфи 6 намного прожорливее Д5?


1-50814
Dmk
2002-09-02 22:22
2002.09.16
Нельзя изменить размер формы за нижний край.


7-50994
DMA
2002-07-05 13:44
2002.09.16
Проблема с окном в ХР


1-50725
Незнайка
2002-09-05 14:27
2002.09.16
Таблицы в RichEdit





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