Author Topic: Clickermann v4.7 SE+ Новые возможности. Особенности.  (Read 35662 times)

0 Members and 2 Guests are viewing this topic.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
другая проблема, как сменить язык в кликере если он сворачивается в трей?

А причем тут свернут не свернут? Окно существует всегда просто ты его не видишь.

Достаточно такого кода
Code: (clickermann) [Select]
$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для Clickermann
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для Clickermann

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
другая проблема, как сменить язык в кликере если он сворачивается в трей?

А причем тут свернут не свернут? Окно существует всегда просто ты его не видишь.

Достаточно такого кода
Code: (clickermann) [Select]
$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для Clickermann
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для Clickermann
  После такой процедуры работа кликермана  в любом  стороннем приложении будет происходить на указанном языке? 
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
другая проблема, как сменить язык в кликере если он сворачивается в трей?

А причем тут свернут не свернут? Окно существует всегда просто ты его не видишь.

Достаточно такого кода
Code: (clickermann) [Select]
$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для Clickermann
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для Clickermann
  После такой процедуры работа кликермана  в любом  стороннем приложении будет происходить на указанном языке? 

Это для KEYSTRING! Я ж писал пример.

Вот пример с блокнотом. Открой блокнот, запусти скрипт. Напишутся две строки.
А теперь закоментируй SETKBLAYOUT($hwnd1, 1033) и SETKBLAYOUT($hwnd1, 1049) и попробуй снова напишется только одна строка

Code: (clickermann) [Select]
$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
$hwnd2 = wndfind("Блокнот") // получаем HWND окна Блокнота
WNDSTATE ($hwnd2, 1) // фокус на окно
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для Clickermann
SETKBLAYOUT($hwnd2, 1033) // устанавливаем английскую раскладку для Блокнота
 
WAITMS(100)
KEYSTRING("privet",20) // печатаем privet
KEYPRESS(#ENTER)
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для Clickermann
SETKBLAYOUT($hwnd2, 1049) // устанавливаем русскую раскладку для Блокнота
 
WAITMS(100)
KEYSTRING("привет",20) // печатаем привет

HALT

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Может  быть полезнее вместо скриптов, подробно но доступно пояснить принцип  работы данной команды?
Бабочки полёт будит тихую поляну в солнечном свету...

zack

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
другая проблема, как сменить язык в кликере если он сворачивается в трей?

А причем тут свернут не свернут? Окно существует всегда просто ты его не видишь.

Достаточно такого кода
Code: (clickermann) [Select]
$hwnd1 = wndfind("Clickermann -") // получаем HWND окна кликера
SETKBLAYOUT($hwnd1, 1033) // устанавливаем английскую раскладку для Clickermann
 
SETKBLAYOUT($hwnd1, 1049) // устанавливаем русскую раскладку для Clickermann
нет, попробуйте свернуть кликер, когда его уже нет на панели задач, язык он не поменяет
вот кусок кода, ставите на англ раскладку в этих окнах, запускаете при свернутом кликере, в браузере расклада сменится в кликере - нет
если кликер не сворачивать, то раскладка смениться в обоих окнах
Code: [Select]
   $hwnd1 = wndfind("Clickermann")
   $hwnd2 = wndfind("Mozilla Firefox")
   SETKBLAYOUT($hwnd1, 1049)
   SETKBLAYOUT($hwnd2, 1049)
halt

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
нет, попробуйте свернуть кликер, когда его уже нет на панели задач, язык он не поменяет
вот кусок кода, ставите на англ раскладку в этих окнах, запускаете при свернутом кликере, в браузере расклада сменится в кликере - нет
если кликер не сворачивать, то раскладка смениться в обоих окнах

Проблема ясна.
Выход такой, в файле Clickermann\data\config.ini параметр only_tray нужно изменить на 0

; Если 1, то в свернутом состоянии программа не будет отображаться на панели задач
; Только в системном трее
only_tray = 0

zack

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
нет, попробуйте свернуть кликер, когда его уже нет на панели задач, язык он не поменяет
вот кусок кода, ставите на англ раскладку в этих окнах, запускаете при свернутом кликере, в браузере расклада сменится в кликере - нет
если кликер не сворачивать, то раскладка смениться в обоих окнах

Проблема ясна.
Выход такой, в файле Clickermann\data\config.ini параметр only_tray нужно изменить на 0

; Если 1, то в свернутом состоянии программа не будет отображаться на панели задач
; Только в системном трее
only_tray = 0
Спасибо!

Ляпис

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Не знаю как у всех, а у меня чехорда со строковыми и числовыми переменными напрочь убивает скрипт. Сначала они были объединены, переделал, теперь в этой версии опять не работает и не знаю в чём проблема-то, замучился принты втыкать после изменения каждой переменной для лога.... Может стоит вернуть как было? $ и % отдельно.
cmann4.7 se win8 slimbrowser intel core2duo
текущий проект - "Зомби Ферма" VK

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Да теперь запросто в переменную может записаться пустота которая в последствии вызовет ошибку в условии или числа в виде текста 058686 например
Используй INT() там где должны быть именно числа.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Да теперь запросто в переменную может записаться пустота которая в последствии вызовет ошибку в условии или числа в виде текста 058686 например
Используй INT() там где должны быть именно числа.
Обратил внимание,   что даже  INT   не помогает, если скопировать   не цифру и не текст ,  а просто некую точку на поле сайта , в каком-то очень неудачном месте .
Бабочки полёт будит тихую поляну в солнечном свету...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
кто нить нормально и в одном посте может описать в чем проблема? я не следил за дискуссией

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
кто нить нормально и в одном посте может описать в чем проблема? я не следил за дискуссией
Пардон, может будет  слегка непрофессионально.
Как-то так

Допустим скрипт выполнчяет такую операцию на экране браузера:
 -- перейти  к коорд., выделить  цифру, скопировать её , присвоить её значение для переменной, произвести с ней арифметическое действие.

DEFINE($copi,0)
DEFINE($aaa,0)
$copi = FROMCLIP()
$aaa = $copi + 825

 Раньше такие действия не приводили  к ошибкам.
Теперь частенько ошибается,  так как путает цифру  с буквой.
 Метод проб и ошибок показал, что иногда помогает оператор INT

$copi = FROMCLIP()
$aaa = INT($copi) + 825

Иногда помогает это

$wwwdeldel_8 = 19
$a_8 = INT(strfilter($wwwdeldel_8, "-1234567890", 1))

"Вот теперь у меня повторилась та же байда что и у тебя
Это явный баг. Если у второго числа есть минус то все превращается в строку."(ц) Оравен
 http://goo.gl/VnR1F

а иногда вообще ничего не помогает.
http://goo.gl/Kd8qM

описание  и фото типичной ошибки
http://goo.gl/9rRri
Бабочки полёт будит тихую поляну в солнечном свету...

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
 "Синтаксис
FROMCLIP () - строковая функция; возвращает строку, находящуюся в буфере обмена Windows"
 Может быть в этом причина проблем?
Пусть так.
Но , как же  тогда копировать  не строку букв,  а строку цифр?
Бабочки полёт будит тихую поляну в солнечном свету...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
ну баг с минусами я признаю и постараюсь исправить его к НГ

а вот данные из буфера действительно сначала следует отфильтровать (но это все равно останется строкой, потому что STRFILTER - возвращает строку, пускай в ней и одни цифры) и потом уже сделать из строки число, вызвав INT или ROUND.

так же напоминаю скользкий момент
что если строка была "золото: 132 лес:456", то после фильтрации получится "132456", поэтому напоминаю о существовании функций обрезки строки до нужной длины

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
ну баг с минусами я признаю и постараюсь исправить его к НГ

а вот данные из буфера действительно сначала следует отфильтровать (но это все равно останется строкой, потому что STRFILTER - возвращает строку, пускай в ней и одни цифры) и потом уже сделать из строки число, вызвав INT или ROUND.

так же напоминаю скользкий момент
что если строка была "золото: 132 лес:456", то после фильтрации получится "132456", поэтому напоминаю о существовании функций обрезки строки до нужной длины
Не всегда помогает  INT или ROUND.
Допустим  , мы копировали   на экране 6-ти значащую  цифру ( 1000347).
 По ряду причин ( очень редкий случай, но бывает)  эта цифра стала  вдруг двузначной ( 25 ).
Даблклик при этом отрабатывается в пустой части экрана.
( Там нет ни цифр, ни окна копирования. Это окно в сторонней программе неудачно меняет свой размер, в зависимости от длины цифры )
 Так вот.
 Если в FROMCLIP ()  получить значение переменной, скопированной в этой пустой части экрана, то она INT не фильтруется. 

$a_8 = INT(strfilter($wwwdeldel_8, "-1234567890", 1))

Кликерманн выводит окно сообщения об ошибке , если потом с такой кривой полученной переменой  делать  программные  операции (сравнения, деления, умножения итп).
п.с.
 Монстрообразную команду $r_8 = ROUND((INT(strfilter($wwwdeldel_8, "-1234567890", 1))) , 0)  не пробовал , но почему-то не думаю, что получу корректный результат )
 
Бабочки полёт будит тихую поляну в солнечном свету...