Author Topic: Языковая панель ОС  (Read 4477 times)

0 Members and 2 Guests are viewing this topic.

showtime

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Языковая панель ОС
« on: October 24, 2014, 07:55:20 PM »
День добрый. Заметил, что при использовании кликера вылетает языковая панель системы без возможности ее включить обратно.
Таким образом шрифт остается русским. Отсюда функция KEYPRESS практически не работает. Не пойму, почему так происходит. Знакома ли кому нибудь такая проблема?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Языковая панель ОС
« Reply #1 on: October 24, 2014, 10:33:09 PM »
Знакома, несколько раз сталкивался с такой проблемой. Только не в связи с кликером. На тех компах его от родясь небыло.
в одном случае она отрубалась в браузерах и то не сразу. Во втором вообще безсистемно.
Победить так и не смог. И патчи от мелкомягких и что только не пробовал. Там где в браузере отключалось обошел только панто свитфчером.
Из-за кликера не встречал.


ksa-nsk

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Языковая панель ОС
« Reply #2 on: October 28, 2014, 08:10:49 PM »
я давеча всю ночь провозился с языковой панелью, вот что получилось:
(сильно не ругаться, только два дня как учусь кликерману)

Code: (clickermann) [Select]
//=============================================

// процедура смены языка (у меня настроено контрол+шифт) - штатная глючит иногда, мне требуется без ошибок
SUB(ChangeLang_CtrlShift)
  keyDown(16)
waitms(0)
  keyDown(17)
waitms(80)
  keyUp(17)
waitms(20)
  keyUp(16)
waitms(1)
END_SUB

//=============================================
$hwnd = wndfind("Блокнот")
WNDBUMP ($hwnd) // помещает окно на передний план
wait(4)
//=============================================

SUB(ChangeLang, $lang)

  print("$lang=",$lang)
  $code = GETKBLAYOUT($hwnd)
  print("кодировка перед проверкой: ",$code)

  IF ($code=1033)
    IF ($lang="ru")
        ChangeLang_CtrlShift() 
        print("латинницу на русскую раскладку")
          waitms(7178)
      END_IF
  ELSE
    IF ($lang="en")
      ChangeLang_CtrlShift() 
      print("русскую раскладк на латинницу")
        waitms(7178)
      END_IF
  END_IF

  print("кодировка после проверки: ",GETKBLAYOUT($hwnd))

END_SUB

//=============================================

- вызов подпрограммы для установки нужной раскладки

//устанавливаем язык ввода русский
ChangeLang("ru")
или
//устанавливаем язык ввода латинница
ChangeLang("en")
« Last Edit: October 28, 2014, 09:02:36 PM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Языковая панель ОС
« Reply #3 on: October 28, 2014, 09:04:15 PM »
А так что не работает?

Code: (clickermann) [Select]
$hwnd = wndfind("Блокнот")

SETKBLAYOUT($hwnd, 1033) // En
WAIT(2)

SETKBLAYOUT($hwnd, 1049) // Ru
WAIT(2)

HALT

ksa-nsk

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Языковая панель ОС
« Reply #4 on: October 29, 2014, 12:51:01 AM »
такой вариант сразу пробовал - то так то эдак, не стал искать причины, сделал как смог, путь деревянно, зато работает стабильно)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Языковая панель ОС
« Reply #5 on: October 29, 2014, 01:03:44 AM »
такой вариант сразу пробовал - то так то эдак, не стал искать причины, сделал как смог, путь деревянно, зато работает стабильно)

Там еще фишка в том что надо и у кликера язык менять. Вот по этому через буфер надежнее.

Serge

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Языковая панель ОС
« Reply #6 on: November 02, 2014, 10:05:58 AM »

Там еще фишка в том что надо и у кликера язык менять. Вот по этому через буфер надежнее.

Извините за делетанство, но я тоже заметил, что нужно менять язык у кликера и столкнулся с некоторой проблемой. Поэтому хочу спросить:
Каким образом задать нужный мне язык ввода символов?
Например, я делаю запись своих действий, с вводом слова с клавиатуры на русском языке, но при повторении записанных мной действий - кликер вводит текст только если выставлен русский язык в самом кликере . Можно ли сделать так, что бы независимо от того, какой язык выставлен в кликере, при исполнении скрипта вводились символы на русском языке? (что бы это выставлялось какой то командой)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Языковая панель ОС
« Reply #7 on: November 02, 2014, 01:21:55 PM »
Извините за дилетантство, но я тоже заметил, что нужно менять язык у кликера и столкнулся с некоторой проблемой. Поэтому хочу спросить:
Каким образом задать нужный мне язык ввода символов?
Например, я делаю запись своих действий, с вводом слова с клавиатуры на русском языке, но при повторении записанных мной действий - кликер вводит текст только если выставлен русский язык в самом кликере . Можно ли сделать так, что бы независимо от того, какой язык выставлен в кликере, при исполнении скрипта вводились символы на русском языке? (что бы это выставлялось какой то командой)

Вот пример:
Такое имя "c2315ae89e" я написал чтобы функция wndfind гарантированно нашла окно кликера, а не справку, браузер и черт знает где еще может быть написано Clickermann.
Code: (clickermann) [Select]
#name "c2315ae89e"
$hwnd1 = wndfind("c2315ae89e") // получаем HWND окна кликера
$hwnd2 = wndfind("Блокнот") // получаем HWND окна Блокнота
WNDBUMP($hwnd2) // фокус на окно
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для окон
SETKBLAYOUT($hwnd2, 1033)
 
WAITMS(100)
KEYSTRING("privet ",20) // печатаем privet
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для окон
SETKBLAYOUT($hwnd2, 1049)
 
WAITMS(100)
KEYSTRING("привет",20) // печатаем привет
 
HALT

Serge

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Языковая панель ОС
« Reply #8 on: November 02, 2014, 02:23:06 PM »
О мама мия  :)  Как же сложно то!
Тоесть полюбому в кликере нужно устанавливать раскладку? :)
Для сравнения в кликере AutoClickExtreme почему то пофиг раскладка. Там если записал ввод русского текста, то русский и вводится в любом случае.
Но этот AutoClickExtreme какой то слишком навороченный и не совсем удобный.
« Last Edit: November 02, 2014, 02:27:42 PM by Serge »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Языковая панель ОС
« Reply #9 on: November 02, 2014, 02:33:56 PM »
Для сравнения в кликере AutoClickExtreme почему то пофиг раскладка.

Все зависит от автора, KEYSTRING работает по простому алгоритму. Например в хранителе паролей "KeePass 2" есть автонабор. Он там вводит вообще любые символы даже которых на клаве вообще нет.
Я предпочитаю использую для ввода текста копирование через буфер, так проще и надежнее.