1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Как перехватить открытие чужого приложения

Тема в разделе "Delphi - программирование", создана пользователем lowuser, 21 окт 2006.

Статус темы:
Закрыта.
  1. lowuser

    lowuser Гость

    Репутация:
    0
    Пытаюсь перехватить открытие любого приложения в Windows XP
    подскажите что я делаю не так:
    в DLL ставлю глобальный HOOK:
    procedure SetGlobalHook(InList:TListBox;out List:TListBox) stdcall;
    begin
    EList:= InList;
    HookHandle:= SetWindowsHookEx(WH_SHELL, @ShellProc, HInstance, 0);
    List:=EList;
    end;
    и потом в функции ShellProc пытаюсь отловить событие HSHELL_WINDOWCREATED и вставить заголовок окна и название класса окна в TListEdit:
    ShellProc(Code: integer; WParam: WPARAM; LParam: LPARAM):LRESULT stdcall;
    var
    msg: PEVENTMSG;
    Nm:Array[0..255] of Char;
    Cs: Array[0..255] of Char;
    begin
    if Code >= 0 then
    begin
    result := 0;
    msg := Pointer(WParam);
    case msg.message of
    HSHELL_WINDOWCREATED:
    begin
    GetWindowText(msg.hwnd,Nm,255);
    GetClassName(msg.hwnd,Cs,255);
    EList.Items.Add(String(Nm)+'/'+String(Cs));
    end;
    end;
    End
    else
    result:= CallNextHookEx(HookHandle, Code, WParam, LParam);
    end;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей