Погода: 3 °C
29.031...3пасмурно, снег с дождем
30.031...3пасмурно, небольшие дожди
  • Балин... то ли я дурной. то ли чаго...
    Итак. Имеем либу. В ней пишем.
    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
    -------
    Рожденный ползать везде пролезет.

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

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

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

Модератор: