Author Topic: отравить нажатие клавиши в другое окно  (Read 2233 times)

0 Members and 1 Guest are viewing this topic.

Winlogon

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Здравствуйте, запущено 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
и еще вопрос, поток может обращаться к переменным из основного скрипта?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Первое что бросается в глаза, это отсутствие 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
и еще вопрос, поток может обращаться к переменным из основного скрипта?
Да.

Winlogon

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
гетскрин не нужен т.к в if все переменные из основного скрипта, это проверяется в основном окне жизни персонажа,
 что за значения присваиваются $keydown ?
про отпускать что то я забыл
спасибо
« Last Edit: April 18, 2015, 07:30:13 AM by Winlogon »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
что за значения присваиваются $keydown ?

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

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

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