Author Topic: Как сохранить изображение в файл с рандомным именем?  (Read 1748 times)

0 Members and 1 Guest are viewing this topic.

Qlloudy

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
Уважаемые форумчане подскажите как реализовать  следующее:
При появлении на экране картинки определить ее координаты, кликнуть и скопировать появившуюся на месте предыдущей картинки, новую картинку в файл с рандомным именем?
Заранее спасибо!
Если есть желание, нет ничего невозможного -все преграды лишь в нашей голове...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Создай папку "Image" рядом с сохраненным скриптом. В нее помести картинку для поиска.
Code: (clickermann) [Select]
GETFILELIST($a_image, "Image\*.bmp") // Получаем список картинок в папке Image
GETSCREEN
FOR($i=0,$i<ARRSIZE($a_image)) // цикл поиска картинок
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Image\", $a_image[$a]), -1, 100)
      $i = ARRSIZE($a_image)
      LCLICK($_return1, $_return2)
      MOVER(-100,-100)
      WAITMS(1000)
      $s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_"
      $str = ""
      FOR($b=0,$b<10) // Генератор случайного имени. 10 символов
         $str = STRCONCAT($str, STRCUT($s, RND(1,STRLEN($s)), 1))
      END_CYC
      GETSCREEN // делаем снимок и сохраняем новую картинку
      SCREENSHOTFIX($_return1, $_return2, $_return1+20, $_return2+20, STRCONCAT("Image\", $str, ".bmp"), 0)
   END_IF
END_CYC

WAIT(1)

Qlloudy

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
Создай папку "Image" рядом с сохраненным скриптом. В нее помести картинку для поиска.

Спасибо очень помогло, не знал просто таких команд, получилось иначе но робит, глянь может можно что улучшить, хотелось бы последние 2 поиска в разных областях на наличие картинки объединить в один, не подскажешь как?
Code: (clickermann) [Select]
LCLICK(49,371)
WAITMS(50)
WHEELDOWN
WAITMS(50)
MOVE(863,385)
WAITMS(1500)

GETSCREEN
IF_PICTURE_IN(946,309,983,460, "1.bmp")
   WAITMS(100)
   LCLICK($_return1+25, $_return2-15)
   MOVE(863,385)
WAITMS(50)
   WAITMS(500)
$s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_"
      $str = ""
      FOR($b=0,$b<10) // Генератор случайного имени. 10 символов
         $str = STRCONCAT($str, STRCUT($s, RND(1,STRLEN($s)), 1))
      END_CYC
      GETSCREEN // делаем снимок и сохраняем новую картинку
      SCREENSHOTFIX($_return1-35, $_return2-15, $_return1+100, $_return2+10, STRCONCAT("Image\", $str, ".bmp"), 0)
End_if

GETSCREEN
IF_PICTURE_IN(383,122,746,624, "2.bmp")
   WAITMS(50)
   LCLICK($_return1-25, $_return2+15)
   WAITMS(50)
End_if

GETSCREEN
IF_PICTURE_IN(353,125,785,733, "3.bmp")
   WAITMS(50)
   LCLICK($_return1-25, $_return2+15)
   WAITMS(50)
End_if
Если есть желание, нет ничего невозможного -все преграды лишь в нашей голове...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ну если только так
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN(383,122,746,624, "2.bmp")
   WAITMS(50)
   LCLICK($_return1-25, $_return2+15)
   WAITMS(50)
ELSE // если не найдено "2.bmp" ищем "3.bmp"
   IF_PICTURE_IN(353,125,785,733, "3.bmp")
      WAITMS(50)
      LCLICK($_return1-25, $_return2+15)
      WAITMS(50)
   END_IF
END_IF

Qlloudy

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
Спасибо, в принципе так и думал, все работает как часики, буду дальше делать =)
Если есть желание, нет ничего невозможного -все преграды лишь в нашей голове...