Поиск цвета с условием

Angelitto
Offline
Зарегистрирован: 16.06.2020

Поиск цвета на мониторе по координатам, если цвет есть выполнить
Обращаться в личку

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Тут лички нет.

rkit
Offline
Зарегистрирован: 23.11.2016

Что выполнять? Где выполнять? На арудино? На компьютере? Как ищем цвет? Камерой или с hdmi снимаем? Может удосужимся больше одного предложения написать, раз уж собрались деньги платить за работу?

Angelitto
Offline
Зарегистрирован: 16.06.2020

На компьютере, найти пиксель по координатам если есть выполнить действие
Пробую кликер для игры сделать, с условием
Как это можно реализовать? У кого есть решение дайте контакты

if(цвет1) == (нужный цвет1) 

{

Serial.println ("Hello World!");



Keyboard.press(KEY_F1);

delay(500);

Keyboard.releaseAll();

delay(3000);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

Angelitto пишет:

На компьютере, найти пиксель по координатам если есть выполнить действие

так по координатам или по цвету?

И при чем тут ардуина вообще? если это на компе, как вы предполагаете ардуиной искать пиксель? Камеру ставить и распознавать изображение? - бред

Пишите резидентное приложение в той ОС, в которой работаете

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Интересное задание. Пишите barmaley2m@yandex.ru

Angelitto
Offline
Зарегистрирован: 16.06.2020

Почему бред? Зачем мне поиск по всему монитору?
Мне нужен поиск цвета по нужным координатам 
С помощью ардуино я реализую эмуляцию нажатий, в этой игрушке зашита от кликов поэтому приходиться использовать ардуино
Причем тут камера для поиска цвета?) В С++ нету поиска пикселей?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

C++ вапще ничего  не знает про пиксели. 

KPG
Offline
Зарегистрирован: 09.06.2019

Может Вам в эту тему? https://gamedev.ru/flame/forum/?id=172017 (Автоматизация действий на компьютере. Скриптовый язык)

P.S. Или на этот форум https://forum.hiasm.com/main/

Ну, а может Вы для своей цели хотите задействовать Ардуино модуль?

Есть ещё программа с широким функционалом для подобных целей, активным форумом и условно бесплатной для жителей бывшего USSR  ttp://nncron.ru/index_ru.shtml

b707
Offline
Зарегистрирован: 26.05.2017

Angelitto пишет:

Причем тут камера для поиска цвета?) В С++ нету поиска пикселей?

Поиска пикселей? - боюсь что ни в каком языке программирования нет

 

Angelitto
Offline
Зарегистрирован: 16.06.2020
b707
Offline
Зарегистрирован: 26.05.2017

и при чем тут это? - это получение цвета пикселя в изображении, а не на экране чужого компа, на который его выводит сторонняя программа

Это типа как

- Вы же можете посчитать, сколько денег в кошельке?
- Конечно могу...
- Тогда посчитайте. сколько денег у в-о-он того мужика в сером пальто, что из трамвая вышел...

 

fridgetester
fridgetester аватар
Offline
Зарегистрирован: 09.02.2019

Игрушка то под что сделана? GDI, DirectX, OpenGL, Vulkan? Не все экраны можно с легкостью захватить.

KPG
Offline
Зарегистрирован: 09.06.2019

Если аппаратно подцепиться на видеовыход карточки и задействовать обученную нейронную сеть на специальном чипе или какой нибудь FPGA , то можно не думать как и кто выводит изображение на экран. :)

Но, боюсь, финансово это выйдет не бюджетно.

P.S. TC ещё не озвучил сколько ему лет.

Angelitto
Offline
Зарегистрирован: 16.06.2020

Похоже вы далеки в программировании 
Это решение максимум в 10 строк, как я понял можно взаимодействовать с другими языками
 

KPG
Offline
Зарегистрирован: 09.06.2019

Angelitto пишет:

Похоже вы далеки в программировании 
Это решение максимум в 10 строк, как я понял можно взаимодействовать с другими языками
 

Неужели с ассемблером можно взаимодействовать?

Angelitto
Offline
Зарегистрирован: 16.06.2020

Какое имеет значение мой возраст?) От этого меняется мое решение?) 
игрушка lineage 2 
https://habr.com/ru/post/346258/ вот что мне нужно

fridgetester
fridgetester аватар
Offline
Зарегистрирован: 09.02.2019

И что вам мешает взять это готовое решение?

Angelitto
Offline
Зарегистрирован: 16.06.2020

Нужно готовое решение, поэтому написал тут

b707
Offline
Зарегистрирован: 26.05.2017

Angelitto пишет:

Похоже вы далеки в программировании

в отличии от вас :)

b707
Offline
Зарегистрирован: 26.05.2017

Angelitto пишет:

Какое имеет значение мой возраст?) От этого меняется мое решение?) 
игрушка lineage 2 
https://habr.com/ru/post/346258/ вот что мне нужно

ну круто, ничего не скажешь. только как я уже писал выше, это пишется не на ардуине, нужно писать бот в винде, я в этом ни...ера не понимаю

Angelitto
Offline
Зарегистрирован: 16.06.2020

Да без разницы на чем это будет писаться, главное что бы это работало на винде 10
Мне главное что бы все клики были через arduino плату

sadman41
Offline
Зарегистрирован: 19.10.2016

Дак бормолей дал контакт - за пять сотен рэ на любом ассемблере нахреначит. Потому что уже себе делал. Только у него ардуин нет - придется выслать.

Angelitto
Offline
Зарегистрирован: 16.06.2020

Отписал жду ответа
Плата есть

fridgetester
fridgetester аватар
Offline
Зарегистрирован: 09.02.2019

если не секрет, то какой бюджет предполагается?

Angelitto
Offline
Зарегистрирован: 16.06.2020

700 рублей

b707
Offline
Зарегистрирован: 26.05.2017

Angelitto пишет:

700 рублей

ну это было понятно уже давно :)

fridgetester
fridgetester аватар
Offline
Зарегистрирован: 09.02.2019

Ясно, тогда без комментариев. Ещё раз убеждаюсь что обсуждение любой темы в этом разделе лучше начинать именно с прояснения бюджетного аспекта.

С другой стороны, если имеется в виду только ардуино часть, то скетч нажимающий кнопку по команде с ПК вполне укладывается в данную сумму.

Angelitto
Offline
Зарегистрирован: 16.06.2020

А что там такого сверх сложного?) 

Дак бормолей дал контакт - за пять сотен рэ на любом ассемблере нахреначит. Потому что уже себе делал. Только у него ардуин нет - придется выслать.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Да, тролли нынче мелкие пошли, подызносилась порода от инбридинга :)

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

DIYMan пишет:

Да, тролли нынче мелкие пошли, подызносилась порода от инбридинга :)

Вот это точно. У него уже фантазии не хватает. 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017
Не хочется "сор из избы выносить", но старый заказчик ответил на вопрос помог ли ему коллега (Бармалей) - "Не, не составил. Я так тщательно описал что хотел, к тому же он бывший холодильник, и компрессора ему знакомы. Но он пропал. Видимо работы много.
У меня тут появился чел, он алгоритм оформит, в виде си, а вас хотелось попросить всё что связано с интернетом , обменом данными. И вот с выводом на экран, может чего получится"
 
Так что, Бармалей, Вы бы уж отвечали заказчикам и писали бы по делу....а то так...пустой пшик :(
Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Ну и как, помогли Вы ему с выводом в интернет и на экран?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Бармалей пишет:

Ну и как, помогли Вы ему с выводом в интернет и на экран?

Нет, вы же алгоритм не нарисовали)))

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

То да. 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

sadman41 пишет:
Дак бормолей дал контакт - за пять сотен рэ на любом ассемблере нахреначит.

На ассемблере не умею. Я не Садман. 

А на delphi делается.

Procedure TForm1.Button1Click(Sender: TObject);

Var Dc : HDC;

Pix : Cardinal;

X: Integer;

Y: Integer;

Begin

Dc:=GetDC(0);

Pix:=GetPixel(Dc, X, Y);

ReleaseDC(0, Dc);

End;

А переслать на ардуину через сом порт и Садман сможет.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Не пайдеть.  Ему на С++ надо.  Задание, видимо, такое. 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

DetSimen пишет:

Не пайдеть.  Ему на С++ надо.  Задание, видимо, такое. 

Курсовая?

Angelitto
Offline
Зарегистрирован: 16.06.2020

С чего решили что мне именно С++ нужен?) 
Мне нет разница на каком языке будет написано, главное что бы работало 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Бармалей пишет:

sadman41 пишет:
Дак бормолей дал контакт - за пять сотен рэ на любом ассемблере нахреначит.

На ассемблере не умею. Я не Садман. 

А на delphi делается.

Надеюсь, ты в курсе, что твой пример не будет работать во всех случаях?

b707
Offline
Зарегистрирован: 26.05.2017

DIYMan пишет:

Надеюсь, ты в курсе, что твой пример не будет работать во всех случаях?

это как? :) - вариант а или б?

"твой пример не будет работать во всех случаях?" = а) пример будет работать не во всех случаях б) пример не будет работать ни в каких случаях

negavoid2
negavoid2 аватар
Offline
Зарегистрирован: 06.05.2020

это ответ а)

С обычными окошками сработает, а вот с opengl или dxva окнами, и с линейкой в том числе, Pix всегда будет 0.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

b707 пишет:

DIYMan пишет:

Надеюсь, ты в курсе, что твой пример не будет работать во всех случаях?

это как? :) - вариант а или б?

"твой пример не будет работать во всех случаях?" = а) пример будет работать не во всех случаях б) пример не будет работать ни в каких случаях

Ответ а), очевидно же ;) WinAPI-шная GetDC с переданным дескриптором 0 - возвращает канву экрана, но всякие там директИксы и прочая шелуха рисуют в видеопамять, минуя данный слой WinAPI, поэтому пиксель будет тупо чёрным. Раньше подобной недоработкой страдали совсем тугие захватчики окон - пытаешься отпринскринить окно с игрой, а тебе - чёрный прямоугольник на нос (всё верно, винда выделила контекст, и её плевать, кто там что в этот чёрный прямоугольник шарашит).

Т.е. решение не будет работать во всех случаях.

b707
Offline
Зарегистрирован: 26.05.2017

DIYMan пишет:

Т.е. решение не будет работать во всех случаях.

тогда скорее вариант б) - потому что практически все игры, что я знаю - работают через график энжины, а не через WinAPI

Не терпится узнать, как дела у ТС - кто-то взялся делать или нет? :)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

b707 пишет:

Не терпится узнать, как дела у ТС - кто-то взялся делать или нет? :)

Задача-то решаемая, но не за 700 рублей, конечно. И не парой строчек вызовов WinAPI на паскакале. Ну или я сильно отстал от реалий (каюсь, очень давно не брал в руки MSDN по части WinAPI) - и винда теперь может отдавать пиксель с любого контекста, через WinAPI. Хер его знает, если честно. В бытность, когда плотно сидел на WinAPI - было так, как описал.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

DIYMan пишет:

 

Задача-то решаемая, но не за 700 рублей, конечно. 

А за сколько можете решить?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Бармалей пишет:

DIYMan пишет:

 

Задача-то решаемая, но не за 700 рублей, конечно. 

А за сколько можете решить?

Я вроде не вызывался на решение этой задачи. Частичное решение - ты предложил. Полное решение - требует больше секса. Да и, принимая во внимание вышеизложенный факт, что я давно не слежу за тенденциями WinAPI - не могу дать справедливую оценку стоимости задачи. Однако, 700 рублей - это пара часов работы, не больше. За пару часов на круг - эту задачу не решить, т.к. в эти пару часов входит не только написание кода - время общения с заказчиком - это тоже оплачиваемое время.

Так что, если отвечать на твой вопрос прямо - ни за сколько.

Angelitto
Offline
Зарегистрирован: 16.06.2020
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Pix ='нужный цвет' then 
    begin
      как послать сигнал на плату? 
    end
  else
    begin
      выполнить если не подошел цвет 
    end;

 

negavoid2
negavoid2 аватар
Offline
Зарегистрирован: 06.05.2020

Упорный читерок :)

procedure SendF1;
var
  KeyInputs: array of TInput;

  procedure KeybdInput(vkey: Byte; Flags: DWORD);
  begin
    SetLength(KeyInputs, Length(KeyInputs) + 1);
    KeyInputs[high(KeyInputs)].Itype := INPUT_KEYBOARD;
    with KeyInputs[high(KeyInputs)].ki do
    begin
      wVk := vkey;
      wScan := MapVirtualKey(wVk, 0);
      dwFlags := Flags;
    end;
  end;

begin
  KeybdInput(Ord('F1'), 0);
  KeybdInput(Ord('F1'), KEYEVENTF_KEYUP);
  SendInput(Length(KeyInputs), KeyInputs[0], SizeOf(KeyInputs[0]));
end;

 

Angelitto
Offline
Зарегистрирован: 16.06.2020

Спасибо)

Morroc
Offline
Зарегистрирован: 24.10.2016

Писал по линейку автопоедалку СР банок на руофф. Самым примитивным образом цвет пикселя конечно было не получить, но в целом не особо сложно хоть и директ или что то такое используется, зависит от конкретной защиты, сложнее было кнопки эмулировать программно - пришлось через ПО логитек на lua.