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

Основной раздел => Общие вопросы => Topic started by: mixer on July 28, 2014, 07:03:36 PM

Title: Вопрос по функционалу KEYDOWN / KEYUP
Post by: mixer on July 28, 2014, 07:03:36 PM
Вопрос собственно вот в чем: Есть конфиг-файл с настройками для программы.
Там настроена "горячая" клавиша--->
...
[Keyboard]
keyHp=9
...

При использовании переменной, для назначения "горячей клавиши", и подстановке ее в конструкцию Keydown\Keyup возникает ошибка интерпритации...(пример ниже). Можно ли обойти эту проблему,сохранив возможность настройки горячей клавиши через config.ini ???

Может есть более интересный вариант "прожать" настраиваемые из ini клавиши для использования скила?!

Code: (clickermann) [Select]

$hp_color=PXL($hp_x,$hp_y)//Значение переменных есть - работают

if($hp_color!1930288)

//Берем с config.ini значение - "9" например
$giveKeyHp=iniread("config.ini","keyHp","Keyboard")
$keyHp=strconcat("#",$giveKeyHp)//Как я думаю, тут сторока "#9"

keydown(#Shift), waitms(50)
keydown($keyHp), waitms(50)//Ошибка интерпритации строки...
keyup($keyHp)   //Думал будет значение "#9" и сработает нажатие(отжатие) клавиши
keyup(#Shift)

end_if

p\s Разработчики, можете взять на заметку реализовать, если есть возможность, данную фитчу... Конечно это не приоритетные задачи, но все же было бы не плохо...
Title: Re: Вопрос по функционалу KEYDOWN / KEYUP
Post by: Oraven on July 28, 2014, 07:45:53 PM
Нельзя передать с помощью переменной константу, но можно передать десятеричный или шестнадцатеричный  код клавиши

Code: (clickermann) [Select]
GETSCREEN
$hp_color=PXL($hp_x,$hp_y)//Значение переменных есть - работают

if($hp_color!1930288)
   
   //Берем с config.ini значение - "9" например
   $giveKeyHp=iniread("config.ini","keyHp","Keyboard")
   
   IF($giveKeyHp = 9) // клавиша 9 соответствует коду 57
      $keyHp = 57
   END_IF
   // такие же условия для сопоставления других вариантов клавиш
   
   
   keydown(#Shift)
   waitms(50)
   keydown($keyHp)
   waitms(50)
   keyup($keyHp)
   keyup(#Shift)
   
end_if
Title: Re: Вопрос по функционалу KEYDOWN / KEYUP
Post by: mixer on July 28, 2014, 07:57:20 PM
Четко!

...Как понял, можно прилепить файл-обработчик для перевода кода клавиш, который в начале программы проверит что за клавиша установлена в ини-файле, переведет ее в 16код, и присвоит переменной значение... В файле целесообразнее использовать switch, вместо if...

Ссори! Мысли в слух... Огромное спасибо!

"Нельзя передать с помощью переменной константу, но можно передать десятеричный или шестнадцатеричный  код клавиши"

А когда-нибудь можно будет!? В версии так +100500?!
Title: Re: Вопрос по функционалу KEYDOWN / KEYUP
Post by: Oraven on July 28, 2014, 08:01:50 PM
Стоит еще помнить что iniread возвращает строку а если нужно с числом какие то вычисления производить то надо принудительно перевести в число с помощью INT.
$giveKeyHp=INT(iniread("config.ini","keyHp","Keyboard"))
Title: Re: Вопрос по функционалу KEYDOWN / KEYUP
Post by: mixer on July 28, 2014, 08:05:25 PM
Не, ну я конечно понимаю...  ;)
Я первым делом прочитал instructions.chm, форум, а уж потом вопрос задал)))
Спасибо за ответы!!! Удачи в вашем нелегком труде!
Title: Re: Вопрос по функционалу KEYDOWN / KEYUP
Post by: Oraven on August 01, 2014, 05:14:20 PM
То что ты хочешь реализуемо с помощью KEYSTRING и без всяких констант. Правда функция чувствительна к раскладке целевого окна и самого кликера. Раскладки должны быть одинаковы.

Code: (clickermann) [Select]
$hp_color=PXL($hp_x,$hp_y)//Значение переменных есть - работают

if($hp_color!1930288)
   
   //Берем с config.ini значение - "9" например
   $keyHp=iniread("config.ini","keyHp","Keyboard")
   
   keydown(#Shift)
waitms(50)
KEYSTRING($keyHp,50)
waitms(50)
   keyup(#Shift)
   
end_if