Ерунда какая-то!
Попробовал пойти по второму варианту, с включением оконного режима. Чуток подшаманил, вроде должно работать, но — индейская изба! Печать идёт в стиле:
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelllllllllllllllllllllllllllllllllllllllllllllllllllllloooooooooooooooooooooooo
только залипания ещё больше. Что я сделал не так?
// 12.01.2017 6
#name "Запись в notepad"//Имя нашего скрипта
EXECUTE("notepad.exe")//Запускаем программу notepad.exe. Команда EXECUTE равносильна окну "Выполнить" в Виндовс (Win+R).
WNDSTATE(WNDFIND("Блокнот"), 1)//Разворачиваем окно в заголовке которого есть строка "Блокнот". 1 - означает развернуть, 0 - свернуть.
WAITMS(1000)//Ждем чтобы блокнот окончательно запустился. 500 мс достаточно
$hw = wndfind("Блокнот") // получаем HWND окна Блокнота
//print ($hw)
WNDPOS($hw,10,10) // помещаем Блокнот в угол экрана
HSET($hw,1) // включаем в Блокноте оконный режим
$hw2 = HGET(100,100) // определяем hwnd текстового поля блокнота (как ни странно, 100,100 от угла экрана, а не от окна)
HSET($hw2,1) // включаем оконный режим в текстовом поле блокнота
KEYSTRING("Hello:- world! Проверка: связи*", 50) // пишем Привет...
HSET($hw2,0) // снимаем оконный режим.
print ( $hw )
print ( $hw2 )
//SUB(A_KEYSTRING, $str, 10,$hw)
// //$hw = HGET($a_cx,$a_cy)
// //$hw = wndfind("Безымянный") // (мой изврат) получаем HWND окна notepad
// HSET($hw,1)
// KEYSTRING($str)
// HSET($hw,0)
//END_SUB
////--------------------
//$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
//$hwnd2 = wndfind("Блокнот") // получаем HWND окна Блокнота
//SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для окон
//SETKBLAYOUT($hwnd2, 1033)
//print ($hwnd1)
//print ($hwnd2)
////или
//// SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для окон
//// SETKBLAYOUT($hwnd2, 1049)
////--------------------
//FOR($i, $i < 2)//Начало цикла. Цифра 2 означает что цикл повторится 5 раз
//
// A_KEYSTRING("Hello:-/ world! Проверка: связи*", 20, $hw)//Вводим текст. 20 означает задержку в 20 мс между вводом каждой буквы
//
// KEYPRESS(#ENTER)//Нажимаем Enter чтобы перевести строку. #ENTER - код клавиши Enter
//
// print ($hw)
//
//END_CYC//Заканчиваем цикл
HALT//Останавливаем скрипт
Установка одинаковых раскладок не помогает.
Если вместо KEYSTRING использовать
KEYPRESS(#1)
KEYPRESS(#2)
KEYPRESS(#3)
то всё прекрасно работает!