Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
3-1122696560
Ярослав
2005-07-30 08:09
2005.09.11
Не запускается FB Server


4-1121972941
SpyBoy
2005-07-21 23:09
2005.09.11
Количество дней в определённом месяце


1-1124701636
Laymer
2005-08-22 13:07
2005.09.11
QuickReport


11-1106905612
MTsv DN
2005-01-28 12:46
2005.09.11
МультиВыбор в OpenSaveDialog


3-1122580732
igsi
2005-07-28 23:58
2005.09.11
Помогите с кодировкой.





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