![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CD ROM [D5, Win95/98]
VIB © (2002-03-14 10:30:00)Как програмно отлавливать все попытки обращения к CD.
Например если кто-то обращается к CD то выдать сообщение.
dim- (2002-03-14 12:13:00) [1]если к СД обращаются по сети с др. машины можно отлавливать подключение к твоему ПК:
unit getUser;
interface
uses Windows, SysUtils,Classes;
//, Messages, Graphics, Controls, StdCtrls
type
TSessionInfo50 = packed record
Sesi50_cname:PChar;
Sesi50_username:PChar;
sesi50_key:Cardinal;
sesi50_num_conns:word;
sesi50_num_opens:word;
sesi50_time:Cardinal;
sesi50_idle_time:Cardinal;
sesi50_protocol:byte;
pad1:byte;
end;
function NetSessionEnum (SrverName:PChar;sLevel:dword; pbBuffer:pointer; cbBuffer:dword;EntriesRead,TotalAvial:pointer):integer; stdcall; external "svrapi.dll";
procedure GetJoiInTo(var GetPC,GetUser,GetFile:tstringlist);
implementation
procedure GetJoiInTo(var GetPC,GetUser,GetFile:tstringlist);
var
SessionInfo: array [0..512] of TSessionInfo50;
EntriesRead,TotalAvial: Word;
i:integer;
begin
NetSessionEnum (nil,50,@SessionInfo,SizeOf(SessionInfo),@EntriesRead,@TotalAvial);
GetPC.Clear;
GetUser.Clear;
GetFile.Clear;
for i:=0 to EntriesRead-1 do
with SessionInfo[i] do
begin
GetPC.Add (string(Sesi50_cname));
GetUser.Add (string(Sesi50_username));
GetFile.Add (IntTostr(sesi50_num_opens));
end;
if getpc.Count<1 then
begin
GetPC.Add ("Активных пользователей нет");
//GetUser.Add ("");
//GetFile.Add ("");
end;
end;
end.