Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: showtime on October 24, 2014, 07:55:20 PM

Title: Языковая панель ОС
Post by: showtime on October 24, 2014, 07:55:20 PM
День добрый. Заметил, что при использовании кликера вылетает языковая панель системы без возможности ее включить обратно.
Таким образом шрифт остается русским. Отсюда функция KEYPRESS практически не работает. Не пойму, почему так происходит. Знакома ли кому нибудь такая проблема?
Title: Re: Языковая панель ОС
Post by: Vint on October 24, 2014, 10:33:09 PM
Знакома, несколько раз сталкивался с такой проблемой. Только не в связи с кликером. На тех компах его от родясь небыло.
в одном случае она отрубалась в браузерах и то не сразу. Во втором вообще безсистемно.
Победить так и не смог. И патчи от мелкомягких и что только не пробовал. Там где в браузере отключалось обошел только панто свитфчером.
Из-за кликера не встречал.
Title: Re: Языковая панель ОС
Post by: ksa-nsk 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")
Title: Re: Языковая панель ОС
Post by: Oraven 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
Title: Re: Языковая панель ОС
Post by: ksa-nsk on October 29, 2014, 12:51:01 AM
такой вариант сразу пробовал - то так то эдак, не стал искать причины, сделал как смог, путь деревянно, зато работает стабильно)
Title: Re: Языковая панель ОС
Post by: Oraven on October 29, 2014, 01:03:44 AM
такой вариант сразу пробовал - то так то эдак, не стал искать причины, сделал как смог, путь деревянно, зато работает стабильно)

Там еще фишка в том что надо и у кликера язык менять. Вот по этому через буфер надежнее.
Title: Re: Языковая панель ОС
Post by: Serge on November 02, 2014, 10:05:58 AM

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

Извините за делетанство, но я тоже заметил, что нужно менять язык у кликера и столкнулся с некоторой проблемой. Поэтому хочу спросить:
Каким образом задать нужный мне язык ввода символов?
Например, я делаю запись своих действий, с вводом слова с клавиатуры на русском языке, но при повторении записанных мной действий - кликер вводит текст только если выставлен русский язык в самом кликере . Можно ли сделать так, что бы независимо от того, какой язык выставлен в кликере, при исполнении скрипта вводились символы на русском языке? (что бы это выставлялось какой то командой)
Title: Re: Языковая панель ОС
Post by: Oraven 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
Title: Re: Языковая панель ОС
Post by: Serge on November 02, 2014, 02:23:06 PM
О мама мия  :)  Как же сложно то!
Тоесть полюбому в кликере нужно устанавливать раскладку? :)
Для сравнения в кликере AutoClickExtreme почему то пофиг раскладка. Там если записал ввод русского текста, то русский и вводится в любом случае.
Но этот AutoClickExtreme какой то слишком навороченный и не совсем удобный.
Title: Re: Языковая панель ОС
Post by: Oraven on November 02, 2014, 02:33:56 PM
Для сравнения в кликере AutoClickExtreme почему то пофиг раскладка.

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