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

Вниз

Мониторинг работы с файлами...   Найти похожие ветки 

 
Makhanev A.S.   (2005-07-21 11:42) [0]

Нужно мониторить операции юзера с файлами: open, delete, rename, copy, move...
Причем, операции, производимые только непосредственно через Explorer, а также, корректно сечь работу на шарах, сечь не конкретную директорию, а действия юзера на всем винте/шарах.

Смотрел кучу компонент на torry, у всех есть явные недостатки (основной - мониторинг конкретной папки, а не всего диска).
Те же, что мониторят весь диск дают много лишне инфы, т.к. драйвера ловят все операции на диске, произмодимые всеми программами.

Вобщем интересуют любые компоненты/совету и предложения за вменяемую цену.


 
Kolan ©   (2005-07-21 14:53) [1]


> дают много лишне инфы

Ну и что?


 
AlexKniga ©   (2005-07-21 15:00) [2]

Если интересует тока Проводник Окон, то проще самому написать.
Вот пример Hook"а на копирование:
unit UHook;

interface

uses
 ShlObj, ComObj, Windows;

const
 CLSID_WEHook: TGUID="{9C123760-65F8-11D2-AEF9-444553540000}";

type
 TWEHook=class(TComObject, ICopyHook)
    public
     function CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar;
 dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD): UINT; stdcall;
  end;

implementation

uses
 Dialogs, Forms, ShellAPI, SysUtils, ComServ;

type
 TWEHookFactory=class(TComObjectFactory)
    public
procedure UpdateRegistry(Register: Boolean); override;
  end;

function TWEHook.CopyCallback(Wnd: HWND; wFunc, wFlags: UINT; pszSrcFile: PAnsiChar;
dwSrcAttribs: DWORD; pszDestFile: PAnsiChar; dwDestAttribs: DWORD): UINT;
var
 Msg:string;
begin
 Application.Handle:=Wnd;
 Msg:="";
 case wFunc of
   FO_COPY:    Msg:=Format("Действительно ли Вы хотите копировать директорию %s в %s?", [pszSrcFile,pszDestFile]);
   FO_DELETE: Msg:=Format("Действительно ли Вы хотите удалить директорию %s?", [pszSrcFile]);
   FO_MOVE: Msg:=Format("Действительно ли Вы хотите переместить директорию %s в %s?", [pszSrcFile,pszDestFile]);
   FO_RENAME: Msg:=Format("Действительно ли Вы хотите назвать директорию %s именем %s?", [pszSrcFile,pszDestFile]);
 end;
 if length(Msg)>0
 then
   Result:=MessageDlg(Msg, mtConfirmation, [mbYes,mbNo,mbCancel], 0)
 else
   Result:=id_Yes;
end;

procedure TWEHookFactory.UpdateRegistry(Register: Boolean);
begin
 if Register then begin
   CreateRegKey("Directory\shellex\CopyHookHandlers\WEHook", "", GUIDToString(CLSID_WEHook));
   CreateRegKey("CLSID\"+GUIDToString(CLSID_WEHook)+"\InprocServer32", "ThreadingModel", "Apartment");
   inherited UpdateRegistry(Register);
 end else begin
   DeleteRegKey("Directory\shellex\CopyHookHandlers\WEHook");
   inherited UpdateRegistry (Register);
 end;
end;

initialization

 TWEHookFactory.Create(ComServer, TWEHook, CLSID_WEHook, "WEHook", "WE Folder Test Hook", ciMultiInstance);

end.


 
jack128 ©   (2005-07-21 15:32) [3]

и если я из своей программы вызову ShFileOperation то этот хук не сработает??


 
oldman ©   (2005-07-21 16:33) [4]


> Нужно мониторить операции юзера с файлами: open, delete,
> rename, copy, move...

Поставь рядом с юзером соглядатая...
Зачем это вообще нужно?


 
AlexKniga ©   (2005-07-21 17:09) [5]

jack128
Сработает. На CopyFile не сработает.


 
Makhanev A.S.   (2005-07-22 14:21) [6]


> Kolan ©   (21.07.05 14:53) [1]
>
> > дают много лишне инфы
>
> Ну и что?

Это я про Alfa File Monitor. Он ловит только close и не отображал юзера, зато кидал кучу другой инфы.

И при всем этом стоит $2000.
Может кто его юзал? (вдруг мы неправильно его прикручивали)


> AlexKniga ©   (21.07.05 15:00) [2]

Спасибо, изучаем.


> oldman ©   (21.07.05 16:33) [4]
>
> > Нужно мониторить операции юзера с файлами: open, delete,
>
> > rename, copy, move...
>
> Поставь рядом с юзером соглядатая...
> Зачем это вообще нужно?

Не знаю, клиент попросил такую вот фичу.
Скорее всего она ему нужна для усиления corporate security, но я не уверен.


 
Оран Гутангович   (2005-07-23 02:20) [7]

Filemon
Есть исходники



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
1-1124285554
Kirill
2005-08-17 17:32
2005.09.11
Установка компонентов не из под IDE


1-1124425972
Ксардас
2005-08-19 08:32
2005.09.11
Как в ричэдите отловить нажатие pageup и pagedown?


3-1122644556
Silver ...
2005-07-29 17:42
2005.09.11
Панели DBCtrlGrid цветом из Базы


5-1098864782
Sysa
2004-10-27 12:13
2005.09.11
Как сделать свою кнопку


3-1122887461
Kara
2005-08-01 13:11
2005.09.11
Преобразование типов данных