Вверх ↑
Ответов: 1925
Рейтинг: 172
#1: 2018-02-18 15:57:20 ЛС | профиль | цитата
hajikov, такое не сработает?

Add(SendMessage,15421399,420,343)
{
Message=10
link(Handle,15564417:Handle,[])
link(LParam,14189995:Memory,[])
}
Add(MemoryStream,14189995,420,147)
{
Point(Memory)
Point(doSize)
}
Add(DataToFile,13414976,420,196)
{
Type=6
link(Stream,14189995:Stream,[])
}
Add(MouseEvent,15564417,406,280)
{
Point(Handle)
}
Add(MainForm,10155007,252,315)
{
Left=20
Top=105
Width=451
Height=121
Point(onClose)
link(onCreate,2317400:SetHook,[])
link(onClose,2317400:UnHook,[])
}
Add(InlineCode,2317400,301,329)
{
@Hint=#49:Глобальный перехват клавиатуры (Вариант от Ivann)|
WorkPoints=#7:SetHook|6:UnHook|
EventPoints=#7:onKeyUp|9:onKeyDown|10:onSysKeyUp|12:onSysKeyDown|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|40: procedure onKey(param,code:integer);|9: public|56: onKeyUp,onKeyDown,onSysKeyUp,onSysKeyDown:THI_Event;|4: |46: procedure SetHook(var dt:TData; Idx:WORD);|45: procedure UnHook(var dt:TData; Idx:WORD);|5: end;|0:|14:implementation|0:|5:const|21: WH_KEYBOARD_LL = $D;|0:|4:var |12: Hook:HHOOK;|45: ret:procedure(param,code:integer) of object;|0:|82:function HookProc(Code: integer; wParam:integer;lParam: LongInt): HRESULT;stdcall;|5:begin|35: ret(wParam,PInteger(lParam)^); |55: result := CallNextHookEx(Hook, Code, wParam , lParam);|4:end;|0:|30:procedure THiAsmClass.SetHook;|5:begin|12: ret:=onKey;|64: Hook := SetWindowsHookEx(WH_KEYBOARD_LL,@HookProc,HInstance,0);|4:end;|0:|28:procedure THiAsmClass.onKey;|5:begin|16: Case Param of|45: WM_KEYDOWN :_hi_OnEvent(onKeyDown,code);|43: WM_KEYUP :_hi_OnEvent(onKeyUp,code);|48: WM_SYSKEYDOWN:_hi_OnEvent(onSysKeyDown,code);|46: WM_SYSKEYUP :_hi_OnEvent(onSysKeyUp,code);|9: end; |4:end;|68:{Сообщение WM_SYSKEYDOWN посылается окну с фокусом клавиатуры тогда,|83:когда пользователь удерживает нажатой клавишу ALT, а затем нажимает другую клавишу.|92:Это происходит также тогда, когда никакое окно в настоящее время не имеет фокуса клавиатуры;|65:в этом случае сообщение WM_SYSKEYDOWN посылается активному окну.}|0:|29:procedure THiAsmClass.UnHook;|5:begin|27: UnhookWindowsHookEx(Hook);|4:end;|0:|4:end.|
link(onKeyDown,4499858:doCase,[])
}
Add(Case,4499858,350,336)
{
Value=Integer(162)
link(onTrue,15421399:doSendMessage,[])
}
Add(Edit,7331696,266,154)
{
Width=265
Text=""
link(onChange,15267767:doEvent1,[])
}
Add(Hub,15267767,322,154)
{
OutCount=3
link(onEvent1,14189995:doClear,[])
link(onEvent2,9265308:doData,[])
link(onEvent3,13414976:doPut,[(378,174)(378,202)])
}
Add(DoData,9265308,357,161)
{
Data=Integer(100000)
link(onEventData,14189995:doSize,[])
}

Просто пишешь нужный текст в поле, подводишь мышь к тому полю, куда нужно записать текст, нажимаешь Ctrl.
карма: 9
0