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

Основной раздел => Общие вопросы => Topic started by: Winlogon on April 17, 2015, 11:23:33 PM

Title: отравить нажатие клавиши в другое окно
Post by: Winlogon on April 17, 2015, 11:23:33 PM
Здравствуйте, запущено 2 окна игрушки, кликер работает с основным окном/персонажем, но также нужно сделать что бы если у первого персонажа мало жизней второй /персонаж/окно его лечило
для этого нужно во втором не активном окне нажать ф1
пытаюсь сделать так но не работает
Quote
THREAD(heal)
$f = 0x70
$HWND = 1377496
IF(pxl($xhp, $yhp) ! $hp)
POSTMESSAGE ($HWND, $KEYDOWN , $f , 0 ) 
END_IF 
waitms(100)
END_THREAD
и еще вопрос, поток может обращаться к переменным из основного скрипта?
Title: Re: отравить нажатие клавиши в другое окно
Post by: dramster on April 18, 2015, 12:17:00 AM
Первое что бросается в глаза, это отсутствие GETSCREEN и для $KEYDOWN не присвоено значение. И после нажатия кнопки, ее положено отпустить POSTMESSAGE ($HWND, $KEYUP , #f1 , 0 ), хотя в большинстве окон $KEYDOWN и $KEYUP срабатывают как клики, так что тут уже сам пробуй, где клик и где нажатие на кнопку. Код кнопки можно записывать константой (#f1).
 
вот что мы получаем:
Code: (clickermann) [Select]
THREAD(heal)
   $HWND = 1971480
   $KEYDOWN = 0x0100
   $KEYUP = 0x0101
   GETSCREEN
   IF(pxl($xhp, $yhp) ! $hp)
      POSTMESSAGE ($HWND, $KEYDOWN , #f1 , 0 )
      POSTMESSAGE ($HWND, $KEYUP , #f1 , 0 )
   END_IF
   waitms(100)
END_THREAD

чтобы постоянно не вписывать $HWND вручную, используй WNDFIND ("title", [begin]) или HGET (x, y)

Quote
и еще вопрос, поток может обращаться к переменным из основного скрипта?
Да.
Title: Re: отравить нажатие клавиши в другое окно
Post by: Winlogon on April 18, 2015, 07:27:31 AM
гетскрин не нужен т.к в if все переменные из основного скрипта, это проверяется в основном окне жизни персонажа,
 что за значения присваиваются $keydown ?
про отпускать что то я забыл
спасибо
Title: Re: отравить нажатие клавиши в другое окно
Post by: Oraven on April 18, 2015, 09:51:12 AM
что за значения присваиваются $keydown ?

Это шестнадцатеричный код. Можно обойтись и без переменной, сразу писать этот код в функцию
$_hwnd - системная переменная в кликере, возвращает текущий HWND

Code: (clickermann) [Select]
POSTMESSAGE ($_hwnd, 0x0100, #F1, 0) // зажать F1
POSTMESSAGE ($_hwnd, 0x0101, #F1, 0) // отпустить F1

Попробовал в блокноте, пишет буквы как при нажатии так и при отпускании. :o