Author Topic: Нерабочий скрипт (привязка к к окну)  (Read 8117 times)

0 Members and 1 Guest are viewing this topic.

ivanuskov

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Ребят, помогите найти ошибку в скрипте - он вообще ничего не делает. Может, это из=за привязки к окну или еще из-за чего...
Code: (clickermann) [Select]
#name "skybot"

sub(run_exe)  //запуск игры
keypress(#win)
waitms(100)
define($jj)
$jj=0
for($jj, $jj<12)
keypress(#up)
waitms(200)
end_cyc
keypress(#enter)
undefine($i)
end_sub
//--------------------------------
sub(set)  //необходимые настройки
define($kk)
wheeldown(15) //масштаб
waitms(500)
$kk=0
for ($kk, $kk<7)   //масштаб мини-карты
keydown(#ctrl)
waitms(100)
keydown(187)//=
waitms(100)
keyup(#ctrl)
waitms(100)
keyup(187)//=
waitms(100)
end_cyc
end_sub
//--------------------------------

sub(setting)    //настройка в зависимости от условий
if_picture_in(1186, 165, 1284, 238, "from_city.bmp", -1, 70)
lclick($_return1, $_return2)
wait(3)
gosub(set)
keypress(#down)
waitms(200)
keypress(#down)
else
gosub(set)
end_if
end_sub
//--------------------------------


$sky_hwnd=wndfind("Sky2Fly", 1)
if($sky_hwnd=0)
gosub(run_exe)
while ($sky_hwnd=0)
waitms(200)
$sky_hwnd=wndfind("Sky2Fly", 1)
end_cyc
end_if

hset($sky_hwnd, 1)
gosub(setting)
halt // for single run

UPD:   скрипт не выполняет команды (вроде keypress) ВООБЩЕ. Может, дело в привязке к окну?
UPD 2: Действительно, все дело в привязке к окну - с ней ничего не работает
« Last Edit: November 21, 2013, 10:27:32 PM by ivanuskov »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #1 on: November 21, 2013, 10:39:47 PM »
Нет GETSCREEN.
Во время привязки не работают "зажатия" клавиш клавиатуры.

Code: (clickermann) [Select]
#name "skybot"

sub(run_exe)  //запуск игры
   keypress(#win)
   waitms(100)
   $jj=0
   for($jj, $jj<12)
      keypress(#up)
      waitms(200)
   end_cyc
   keypress(#enter)
end_sub
//--------------------------------
sub(set)  //необходимые настройки для бота
   wheeldown(15) //масштаб
   waitms(500)
   $kk=0
   for ($kk, $kk<7)   //масштаб мини-карты
      keydown(#ctrl)
      waitms(100)
      keydown(187)//=
      waitms(100)
      keyup(#ctrl)
      waitms(100)
      keyup(187)//=
      waitms(100)
   end_cyc
end_sub

sub(setting)    //настраивает игру в зависимости от ситуации
   GETSCREEN
   if_picture_in(1186, 165, 1284, 238, "from_city.bmp", -1, 70)
      lclick($_return1, $_return2)
      wait(3)
      gosub(set)
      keypress(#down)
      waitms(200)
      keypress(#down)
   else
      gosub(set)
   end_if
end_sub
//--------------------------------


$sky_hwnd=wndfind("Sky2Fly", 1)
if($sky_hwnd=0)
   gosub(run_exe)
   while ($sky_hwnd=0)
      waitms(200)
      $sky_hwnd=wndfind("Sky2Fly", 1)
   end_cyc
end_if

hset($sky_hwnd, 1)
gosub(setting)
halt // for single run

ivanuskov

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #2 on: November 22, 2013, 07:00:13 AM »
Oraven
Спасибо! Не ответите ли еще на пару вопросов:
1. Как реализовать "зажатие"  в режиме привязки?
2. Возможна ли одновременная работа двух ботов с одним приложением? (один будет действовать исключительно мышкой, другой - клавиатурой)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #3 on: November 22, 2013, 12:48:49 PM »
Только через временное отключение оконного режима. при этом Ctrl будет какое то время зажат для всей системы!

Code: (clickermann) [Select]
#name "skybot"

sub(run_exe)  //запуск игры
   keypress(#win)
   waitms(100)
   $jj=0
   for($jj, $jj<12)
      keypress(#up)
      waitms(200)
   end_cyc
   keypress(#enter)
end_sub
//--------------------------------
sub(set)  //необходимые настройки для бота
   wheeldown(15) //масштаб
   waitms(500)
   $kk=0
   HSET($sky_hwnd,0)
   keydown(#ctrl)
   HSET($sky_hwnd,1)
   waitms(100)
   
   for ($kk, $kk<7)   //масштаб мини-карты
      KEYPRESS(187)//=
      waitms(100)
   end_cyc
   
   HSET($sky_hwnd,0)
   keyup(#ctrl)
   HSET($sky_hwnd,1)
   waitms(100)
end_sub

sub(setting)    //настраивает игру в зависимости от ситуации
   GETSCREEN
   if_picture_in(1186, 165, 1284, 238, "from_city.bmp", -1, 70)
      lclick($_return1, $_return2)
      wait(3)
      gosub(set)
      keypress(#down)
      waitms(200)
      keypress(#down)
   else
      gosub(set)
   end_if
end_sub
//--------------------------------


$sky_hwnd=wndfind("Sky2Fly", 1)
if($sky_hwnd=0)
   gosub(run_exe)
   while ($sky_hwnd=0)
      waitms(200)
      $sky_hwnd=wndfind("Sky2Fly", 1)
   end_cyc
end_if

hset($sky_hwnd, 1)
gosub(setting)
HALT // стоп

Кстати запуск игры лучше прописать так

Code: (clickermann) [Select]
EXECUTE ("c:\Games\Angry Birds\AngryBirds.exe")

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #4 on: November 22, 2013, 12:52:26 PM »
Копируешь папку с кликером, переназначаешь горячие клавиши управления у второй копии.

ivanuskov

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #5 on: November 22, 2013, 04:13:50 PM »
Oraven
Огромное спасибо за помощь!

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #6 on: December 06, 2013, 12:36:50 PM »
У меня похожая проблема с нажатиями клавиш. Привязка к окну отключена. window7 x64.
Code: [Select]
$brauzer=1
$link="http://www.odnoklassniki.ru/game/zm "
if($brauzer=1)
   $browser="chrome.exe"
end_if
if($brauzer=2)
   $browser="opera.exe"
end_if
KEYDOWN (#ctrl)
WAITMS(50)
KEYPRESS (#f4)
WAITMS(50)
KEYUP (#ctrl)
WAIT(2)
EXECUTE($browser,$link)
WAIT(5)
Ссылка открывается в новой вкладке, но старая вкладка не закрывается.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #7 on: December 06, 2013, 01:29:17 PM »
У меня похожая проблема с нажатиями клавиш. Привязка к окну отключена. window7 x64.
Code: [Select]
$brauzer=1
$link="http://www.odnoklassniki.ru/game/zm "
if($brauzer=1)
   $browser="chrome.exe"
end_if
if($brauzer=2)
   $browser="opera.exe"
end_if
KEYDOWN (#ctrl)
WAITMS(50)
KEYPRESS (#f4)
WAITMS(50)
KEYUP (#ctrl)
WAIT(2)
EXECUTE($browser,$link)
WAIT(5)
Ссылка открывается в новой вкладке, но старая вкладка не закрывается.
Может во время выполнения окно не активно?.

Это самое начало скрипта? Если да, то если запускать по Alt+A первое нажатие не срабатывает. Происходит потому, что по Alt активируется меню окна.
Если в скрипте первым идёт нажатие кнопки вот такое неудобство. Выход: нужно прописать первым клик для активации окна и снятия фокуса с меню. Удобнее кликать по заголовку окна.


Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #8 on: December 06, 2013, 01:44:27 PM »

Может во время выполнения окно не активно?.

Это самое начало скрипта?
Нет, это не начало скрипта, окно активно.
Code: [Select]
LCLICK(106,8)  // 15723238
WAIT(3)
$brauzer=1
$link="http://www.odnoklassniki.ru/game/zm "
if($brauzer=1)
   $browser="chrome.exe"
end_if
if($brauzer=2)
   $browser="opera.exe"
end_if
KEYDOWN (#ctrl)
WAITMS(50)
KEYPRESS (#f4)
WAITMS(50)
KEYUP (#ctrl)
WAIT(2)
EXECUTE($browser,$link)
WAIT(5)
halt
« Last Edit: December 06, 2013, 01:46:24 PM by Крис Тинка »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #9 on: December 06, 2013, 01:58:44 PM »
У меня всё закрывает. И всегда закрывал. Писал точно так же.
Сори, клик по заголовку Alt не снимает.
« Last Edit: December 06, 2013, 02:01:54 PM by Vint »


Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #10 on: December 06, 2013, 08:37:20 PM »
Печально... Ни как не пойму в чем причина.
Проверила на другом компьютере, тоже не работает. Может причина в виндовс 7?
« Last Edit: December 07, 2013, 10:15:31 AM by Крис Тинка »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #11 on: December 07, 2013, 05:52:12 PM »
Печально... Ни как не пойму в чем причина.
Проверила на другом компьютере, тоже не работает. Может причина в виндовс 7?
Проверил на Win7 64 бит всё работает.


Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #12 on: December 07, 2013, 07:25:10 PM »

Проверил на Win7 64 бит всё работает.
Проверяла сегодня на блокноте. сначала клик на блокнот, потом ввод разных символов. В итоге водятся только  цифры 1-9, 0 не вводится, буквы  не вводятся. shift зажимается. Буквы не вводятся ни константой, ни 10-ным кодом....

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #13 on: December 07, 2013, 07:30:50 PM »
Снова эта тема....
KEYSTRING довольно капризная функция. Нужно чтобы раскладки кликера и целевого окна совпадали.

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

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: Нерабочий скрипт (привязка к к окну)
« Reply #14 on: December 07, 2013, 10:07:56 PM »
Снова эта тема....
KEYSTRING довольно капризная функция. Нужно чтобы раскладки кликера и целевого окна совпадали.


Почти работает, печатает "rit е". Еще открывается регулировка громкости и отключается либо включаетсчя звук

 Из кода поняла только 3 последние строчки))))

p.s Заработало все идеально, после того, как убила процесс Ikeymain.exe
« Last Edit: December 07, 2013, 10:47:15 PM by Крис Тинка »