Балин... то ли я дурной. то ли чаго...
Итак. Имеем либу. В ней пишем.
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
-------
Рожденный ползать везде пролезет.
Итак. Имеем либу. В ней пишем.
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
-------
Рожденный ползать везде пролезет.