WatchHotKey и переключение раскладок

Обсуждение программ nnCron и nnCron LITE

WatchHotKey и переключение раскладок

Postby Raistlin » Sat, 12 Nov 2005, 16:24

Открываем по Ctrl-Shift-R файл справки и хотим получить в нём русскую раскладку:
Code: Select all
#( CLASSIC-TASK-#-Russian-English_Dictionary
   WatchHotKey: ^+r
   SingleInstance
   AsLoggedUser
   NoLog
   Action:
      S" Russian-English Dictionary" WIN-EXIST? IF
         WIN-ACTIVATE: "Russian-English Dictionary"
      ELSE
         START-APP: "%SystemDrive%\System\Dic\r-e_Dic.chm"
         BEGIN S" Russian-English Dictionary" WIN-EXIST? NOT WHILE 10 PAUSE REPEAT
      THEN
\   Ждём, пока не "отожмутся" все комбинации с Ctrl+Shift
      BEGIN
         VK_SHIFT KEY-PRESSED?
         VK_LCONTROL KEY-PRESSED?
         VK_RCONTROL KEY-PRESSED?
         OR AND
      WHILE
      REPEAT
      ENU? IF WIN-SEND-KEYS: "Russian-English Dictionary" "^(+)" THEN
)#
Зачем все эти сложности в последнем цикле? Дело в том, что переключение раскладок у меня повешено на Ctrl-Shift, а, как оказалось, стандартные средства переключают раскладку при отпускании любой комбинации, в которую входят Ctrl и Shift. Например, при отпускании r из нажатых Ctrl-Shift-R раскладка меняется один раз, а затем, при отжатии получившейся в результате комбинации Ctrl-Shift, — второй. Так что, какую раскладку мы получим в файле справки, зависит от расторопности наших пальцев. Идиотская, откровенно говоря, ситуация, но очевидно, что nnCron здесь не при чём, — как и то, что исправления со стороны MS ждать смешно. Вышеприведённый способ худо-бедно справляется с установлением нужной раскладки в файле справки, но:
  • иногда этот механизм даёт сбой — непонятно почему, но раскладка умудряется-таки оставаться английской;
  • ждать переключения в русский приходится до секунды, что многовато;
  • при определённой паузе перед "отжиманием" комбинации раскладка успевает переключиться в том приложении, которое было активно на начало выполнения задачи.
В связи с этим вопросы:
  1. Не мог бы nnCron "подчищать за собой", перехватывая и "отжатия", хотя бы самое первое (это практически свело бы на нет третью проблему, которая является чуть ли не самой неприятной)?
  2. Нельзя ли как-то переключать раскладку программным способом, а не через послылание клавишного нажатия?
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 5 guests