Мобильная версия форумов
Открыть
 −9°C
завтра: −11°C
Погода в Перми
−9°C
ночью−10°C
утром−15°C
завтра−11°C
Подробно
 65,51
−0.0252
Курс USD ЦБ РФна 23 февраля
65,5149
−0.0252
 74,33
+0.0369
Курс EUR ЦБ РФна 23 февраля
74,3332
+0.0369
  • veteran

    Сообщений: 2421

    Балин... то ли я дурной. то ли чаго...
    Итак. Имеем либу. В ней пишем.
    function KeyboardProc(Code: Integer; wParam, lParam: Integer): Integer; stdcall;
    var WordHandle: HWND;
    begin
    if (Code >= 0) and ((HiWord(lParam) and KF_ALTDOWN) KF_ALTDOWN) and ((HiWord(lParam) and KF_REPEAT) KF_REPEAT) and ((HiWord(lParam) and KF_UP) KF_UP) then
    begin
    result := 0;
    WordHandle:=FindWindow('opusapp', nil);
    if TMsg(Pointer(lParam)^).hwnd=WordHandle then
    if TMsg(Pointer(lParam)^).message=WM_CHAR then
    if IsWindow(PProgData.WndMain) then SendMessage(PProgData.WndMain, HM_ACTION, Ord(haKBD), wParam);
    end;
    Result := CallNextHookEx(PProgData^.Hooks.KeyboardHook, Code, wParam, lParam);
    end;

    [skipped]

    function SetHooks(Active: Boolean): Boolean; stdcall;
    begin
    with PProgData^.Hooks do
    KeyboardHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0);
    Result:=KeyboardHook0;
    end;

    Дык и чего то ей не нравится в выделенонй строке. Высыпается из процедуры и больше в нее никогда не возвращается...
    С чего бы это?
    D3, Win2000

    ---
    Full http://full.nm.ru
    -------
    Рожденный ползать везде пролезет.

  • veteran

    Сообщений: 2421

    Дурак ты, Фуллыч, и не лечишься...
    Это ж надо не wh_keyboard вешать, а wh_getmessage
    ---
    Full http://full.nm.ru
    -------
    Рожденный ползать летит за деньги.

Записей на странице:

Перейти в форум

Модератор: