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

Основной раздел => Общие вопросы => Topic started by: Annihilant on August 09, 2016, 01:26:31 PM

Title: getscreen не видит контекстное меню
Post by: Annihilant on August 09, 2016, 01:26:31 PM
Всем привет!
Следующая проблема, скрипт находит иконку и щелкает на ней правой кнопкой, открывается контекстное меню, он снова смотрит на экран, что бы найти пункт в меню, но меню это не видит хотя оно открылось. Возникает это при выборе простой или классической темы в Windows 7, а при теме AERO, все нормально, но комп и без того нагружен и мне хочется ее отключить. простой принтскрин все видит, что то я не понимаю в чем фишка.
Code: [Select]
wait (3)
log ("ищем иконку")
getscreen ()
scanpicture ($koor,50,980,1023,1023,"1.bmp",-1,80)
if (arrsize($koor) > 0)
wait (1)
log ("нашли")
$y=arrpop($koor)
$x=arrpop($koor)
log (STRCONCAT ("x=", $x," y=", $y))
log ("открываем контекстное меню")
wait (1)
rclick ($x+15,$y+15) //открываем контекстное меню
else
log ("не нашли")
goto (begin)
end_if
wait (4)
log ("ищем пункт в меню")
getscreen ()
wait (2)
screenshot ("глядим")
scanpicture ($koor,2,700,250,800,"2.bmp",-1,75)
if (arrsize($koor) > 0)
wait (1)
log ("нашли")
waitms (200)
$y=arrpop($koor)
$x=arrpop($koor)
log (STRCONCAT ("x=", $x," y=", $y))
waitms (200)
log ("выбираем пункт меню")
waitms (500)
move ($x+20,$y+5)
wait (2)
lclick ($x+20,$y+5) //выбираем пункт меню
else
log ("не нашли")
goto (begin)
end_if
Title: Re: getscreen не видит контекстное меню
Post by: Oraven on August 09, 2016, 02:13:36 PM
Для начала исправим ошибки. И нечего придумывать свои команды они все равно работать не будут

Code: (clickermann) [Select]
LOGWRITE ("ищем иконку")

GETSCREEN
IF_PICTURE_IN (50,980,1023,1023,"1.bmp",-1,80)
   RCLICK($_return1+15, $_return2+15) //открываем контекстное меню
   WAITMS(500)
   LOGWRITE ("нашли")
   LOGWRITE ("x=", $x," y=", $y)
   LOGWRITE ("открываем контекстное меню")
   
   LOGWRITE ("ищем пункт в меню")
   
   GETSCREEN
   SCREENSHOT("глядим")
   IF_PICTURE_IN (2,700,250,800,"2.bmp",-1,75)
      MOVE($_return1+20, $_return2+5)
      WAITMS(100)
      LCLICK($_return1+20, $_return2+5) // выбираем пункт меню
      WAITMS(500)
     
      LOGWRITE ("нашли")
      LOGWRITE ("x=", $x," y=", $y)
      LOGWRITE ("выбираем пункт меню")
     
      HALT // стоп
     
   ELSE
      LOGWRITE ("не нашли 2.bmp")
   END_IF
ELSE
   LOGWRITE ("не нашли 1.bmp")
END_IF
WAITMS(500)
Title: Re: getscreen не видит контекстное меню
Post by: Annihilant on August 09, 2016, 02:39:54 PM
мой код работает, выложил просто для ознакомления.
пишу лог в файл
Code: [Select]
SUB(LOG,$note) // подпрограмма лога с датой
//укорачиваем переменные
   $th = $_time_h
   $tm = $_time_m
   $ts = $_time_s
   $dd = $_date_d
   $dm = $_date_m
   $dy = $_date_y
//проверяем переменные на двузначность
   IF(STRLEN($th)<2)
      $th = STRCONCAT ("0", $th)
   END_IF
   IF(STRLEN($tm)<2)
      $tm = STRCONCAT ("0", $tm)
   END_IF
   IF(STRLEN($ts)<2)
      $ts = STRCONCAT ("0", $ts)
   END_IF
   IF(STRLEN($dd)<2)
      $dd = STRCONCAT ("0", $dd)
   END_IF
   IF(STRLEN($dm)<2)
      $dm = STRCONCAT ("0", $dm)
   END_IF
   IF(STRLEN($dy)<2)
      $dy = STRCONCAT ("0", $dy)
   END_IF
   TFWRITE("otchet.txt", STRCONCAT($dd,".",$dm,".",$dy," ",$th,":",$tm,":",$ts, " ", $note)) // запись в файл
END_SUB
logwrite мне не подходит.

Проблема в том что когда срабатывает команда getscreen фоткается только рабочий стол, а открытое контекстное меню отсутствует на снимке.
Title: Re: getscreen не видит контекстное меню
Post by: Vint on August 09, 2016, 04:40:47 PM
Ну так ты и показывай весь скрипт. Мало ли что там напишут. Поверь, отсебятину частенько сунут.

...Возникает это при выборе простой или классической темы в Windows 7, а при теме AERO, все нормально...

Ну так сюда и копай.

Предложу варианты:
1. Без AERO нужный пункт меню на 1 месте и его закрывает курсор... ну х.з.
2. Без AERO начинают работать другие параметры прозрачности в системе. Не знаю у себя не крутил давно. Хотя с прозрачностями у людей как раз с AERO начинаются проблемы.
3. Ты сделал скрин контекстного меню в AERO при полупрозрачном окне меню. Т.к. меню на одном фоне(?) то ищет нормально. Без AERO, естественно, меню выглядит по другому.
4. То же, что и п.3 но со шрифтами. Разные темы-разные шрифты.
Title: Re: getscreen не видит контекстное меню
Post by: Annihilant on August 09, 2016, 05:11:34 PM
сразу после getscreen пишу команду сохранить скриншот, что бы увидеть что не так, а там тупо нет контекстного меню, хотя в этот момент оно точно открыто, как буд есть несколько слоев и прога фоткает самый нижний.
Title: Re: getscreen не видит контекстное меню
Post by: Vint on August 09, 2016, 05:20:24 PM
Ты случаем не привязался к рабочему столу?