teadrinker пишет:нужно вставить в скрипт грамотно.
Скрипт перестает работать, даже если перед ним есть только одна горячая клавиша для другого действия:
SetTitleMatchMode 2
DetectHiddenWindows On
SendMode Input
SetKeyDelay -1
END::
Reload
return
{ ; AutoSwitch Input Method
#Persistent
Global list := {"AIMP3.exe":"ru", "SciTE.exe":"en"}
SetWinEventHook(EVENT_SYSTEM_FOREGROUND := 0x0003, EVENT_SYSTEM_FOREGROUND, 0, RegisterCallback("HookProc", "F"), 0, 0, 0)
HookProc(hWinEventHook, event, hwnd) {
WinGet, Process, ProcessName, ahk_id %hwnd%
If (list.haskey(Process)) {
ControlGetFocus, CtrlFocus, ahk_id %hwnd%
PostMessage, WM_INPUTLANGCHANGEREQUEST := 0x50, , {"en":0x409,"ru":0x419}[list[Process]], %CtrlFocus%, ahk_id %hwnd%
}
}
SetWinEventHook(eventMin, eventMax, hmodWinEventProc, lpfnWinEventProc, idProcess, idThread, dwFlags) {
Return DllCall("SetWinEventHook", UInt, eventMin , UInt, eventMax , Ptr, hmodWinEventProc
, Ptr, lpfnWinEventProc , UInt, idProcess , UInt, idThread, UInt, dwFlags, Ptr)
}
}
{ ~^+C:: ; Google Search
SendMessage, 0x50, , 0x4090409, , A
IfWinNotActive, Vegas Pro 13.0
{
SendInput, ^c
Sleep 50
Run, http://www.google.com/search?q=%clipboard%
}
return
}
Как мне кажется, действия обособлены друг от друга, но выходит, что не так.