Тема: AHK: Отправка текста в неактивное окно.
Столкнулся с необходимостью, отправки строки текста в не активное окно.
В основе лежит скрипт следующего вида.
id := 0
id1 := 0
id2 := 0
SendToWindow(code, windowId)
{
;global id
;activeId := WinExist("A")
;if activeId = %Id%
;{
SendMessage, 0x100, %code%, 0, , ahk_id %windowId%
SendMessage, 0x101, %code%, 0, , ahk_id %windowId%
;}
;return
}
#InstallKeybdHook
#UseHook ON
#MaxThreadsPerHotkey 1
#MaxThreadsBuffer On
^Numpad0::
id := WinExist("A") ;Присваевает переменной id последнего окна(Верхнего)
MsgBox Main window assigned
return
^Numpad1::
id1 := WinExist("A") ;Присваевает переменной id последнего окна(Верхнего)
MsgBox Support 1 assigned
return
^Numpad2::
id2 := WinExist("A") ;Присваевает переменной id последнего окна(Верхнего)
MsgBox Support 2 assigned
return
!1::SendToWindow(0x70, id1)
!2::SendToWindow(0x71, id1)
!3::SendToWindow(0x72, id1)
!4::SendToWindow(0x73, id1)
!5::SendToWindow(0x74, id1)
!6::SendToWindow(0x75, id1)
!7::SendToWindow(0x76, id1)
!8::SendToWindow(0x77, id1)
!9::SendToWindow(0x78, id1)
!0::SendToWindow(0x79, id1)
!-::SendToWindow(0x7A, id1)
!=::SendToWindow(0x7B, id1)
^1::SendToWindow(0x70, id2)
^2::SendToWindow(0x71, id2)
^3::SendToWindow(0x72, id2)
^4::SendToWindow(0x73, id2)
^5::SendToWindow(0x74, id2)
^6::SendToWindow(0x75, id2)
^7::SendToWindow(0x76, id2)
^8::SendToWindow(0x77, id2)
^9::SendToWindow(0x78, id2)
^0::SendToWindow(0x79, id2)
^-::SendToWindow(0x7A, id2)
^=::SendToWindow(0x7B, id2)
Написание текста нажатием клавиш указанным выше способом весьма громоздко.
Уверен, есть и другой способ, наподобие следующего.
Run Notepad
WinWait Безымянный - Блокнот
SendMessage, 0xC, 0, "Новый заголовок окна" ; 0XC означает сообщение WM_SETTEXT
Возможно, нужен подходящий код оконных сообщений.
Кто знает, подскажите, код, либо другой способ!
Второй день ищу, и не как не найду.
Видимо нужно сменит точку зрения.
Надеюсь, мне в этом помогут.
Эвелину как вариант не рассматриваю.
Заранее благодарен всем откликнувшимся!