Главная страница
    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.011 c
3-1122909888
ArchValentin
2005-08-01 19:24
2005.09.11
Сохранение информации из DBGrid


1-1124191188
Bombila
2005-08-16 15:19
2005.09.11
Как рисовать иконки с alpha-blend(ом)?


4-1122033529
KSergey
2005-07-22 15:58
2005.09.11
Как узнать владельца процесса?


9-1115463075
Кефир87
2005-05-07 14:51
2005.09.11
OpenGL : glBlengFunc : Текстура БЕЗ альфа канала...


3-1122805621
NickMan
2005-07-31 14:27
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский