Конференция "WinAPI" » хук на запуск файлов
 
  • trw (07.08.10 21:19) [0]
    function HookProc(Code: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT;stdcall;
    var
    WndHeader:array[0..MAX_PATH-1] of char;
    begin
     if Code>=0 then
     begin
      case Code of
        HCBT_CREATEWND:
          if (IsWindow(wParam) and (PCBTCreateWnd(lParam)^.lpcs^.hwndParent=0) and
          (lstrlen(PCBTCreateWnd(lParam)^.lpcs^.lpszName)>0)) then
           SaveLog('[Open] '+PCBTCreateWnd(lParam)^.lpcs^.lpszClass);

        HCBT_DESTROYWND:
         if (IsWindow(wParam) and IsWindowVisible(wParam) and (GetParent(wParam)=0))  then
         begin
          GetWindowText(wParam,WndHeader,MAX_PATH);
          if (WndHeader<>'')then
          SaveLog('[Close] '+WndHeader);
         end
      end;
      Result := 0;
    end else
    Result := CallNextHookEx(HookData^.OldHook, Code, WParam, LParam);
    end;

    function SetHook(Wnd: HWND): BOOL; stdcall;
    begin
     if HookData <> nil then
     begin
       HookData^.AppWnd := Wnd;
       HookData^.OldHook := SetWindowsHookEx(WH_CBT, HookProc, HInstance, 0);
       Result:=HookData^.OldHook <> 0;
     end else
      Result:=False;
    end;



    захватывает только lpszName тс. имя файла, как выводить полный путь к файлу и его класс.
  • Дмитрий С © (09.08.10 12:31) [1]
    Это хук на создание окон, а не запуск программ.
    И что такое класс программы?

    http://forum.vingrad.ru/topic-82316.html
 
Конференция "WinAPI" » хук на запуск файлов
Есть новые Нет новых   [134431   +10][b:0][p:0.001]