Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514

Авто кликер для игры

24.09.2014, 09:29. Показов 7754. Ответов 84
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет помогите сделать ато кликер для игрыhttp://tankionline.com
что бы не блакировать работу пользователя у меня вот что вышло но не работает поправте плиз
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button3Click(Sender: TObject);
Var
i,x,y:integer;
h: THandle;
begin
x:=Left +Form1.ClientWidth-(Form1.ClientWidth Div 100)*25;
y:=Form1.ClientHeight-(ClientHeight Div 100)*3;
I := MakeLong( X, Y );
h:=FindWindow(nil, PChar(WebBrowser1));
SendMessage(h, WM_ACTIVATE, 1, 1);
PostMessage(h, WM_KEYDOWN, i, 0);
PostMessage(h, WM_KEYUP, i, 0);
Добавлено через 10 минут
нашол ошибку исправил на
Delphi
1
2
PostMessage(h, WM_LBUTTONDOWN, i, 0);
PostMessage(h, WM_LBUTTONUP, i, 0);
но бъет не в те координаты в которые нужны
если есть решение бить по цвету пиксиля

Добавлено через 20 часов 5 минут
может кто подскажет где ошибка значение Edit1.Text пустое название окна
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  h: THandle;
  i,x,y:integer;
begin
X:=Left +Form1.ClientWidth-(Form1.ClientWidth Div 100)*30;
Y:=Top +Form1.ClientHeight-(ClientHeight Div 100)*3;
i := MakeLong( X, Y );
//SetCursorPos(Left +Form1.ClientWidth-(Form1.ClientWidth Div 100)*30, Top + Form1.ClientHeight-(ClientHeight Div 100)*3);
h:=FindWindowEx(FindWindow(nil,PChar(Form1)), 0,PChar(Edit1.Text), nil);
//FindWindow(nil, PChar(Edit1.Text));
SendMessage(h, WM_ACTIVATE, 1, 1);
PostMessage(h, WM_LBUTTONDOWN, i, 0);
PostMessage(h, WM_LBUTTONUP, i, 0);
end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2014, 09:29
Ответы с готовыми решениями:

Авто кликер
Как сделать простенький кликер? Что бы мышка шла в указанный координат и кликала там несколько раз? Далее останавливалась и снова шла...

Авто-кликер
Подскажите!!! Можно ли как-то выполнять команды вне формы программы delphi? Ну типа МОЕ приложение delphi висит в треи и по горячим...

Написать кликер для игры
Доброе время суток форумчане. Требуется помощь, нужно написать кликер для игры что бы он кликал раз в 2 секунды в одну и ту же точку, все...

84
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 10:06  [ТС]
Студворк — интернет-сервис помощи студентам
Можно пример на моем коде
на гуглился жуть а решить не могу
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 10:15
Ты не понимаешь чем абсолютные координаты отличаются от относительных ?
Или не знаешь что такое клиентская область окна ?
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 10:55  [ТС]
я знаю но не могу вычислить координаты кнопки по относительным размерам окна

Добавлено через 3 минуты
например GetWindowRect вот эта хрень что возврощае размеры окна или координаты левого верхнего угла

Добавлено через 1 минуту
или ScreenToClient тоже не понятно что делает

Добавлено через 7 минут
все пойду застрелюсь
как вычислить координаты кнопки относительно окна

Добавлено через 3 минуты
осечка
стоп относительно окна координаты вычисляются так верно
Delphi
1
2
3
X:=Left +Form1.ClientWidth-(Form1.ClientWidth Div 100)*30;
Y:=Top +Form1.ClientHeight-(ClientHeight Div 100)*3;
i := MakeLong( X, Y );
как вычислить обсолютные координаты
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,978
25.09.2014, 10:56
Цитата Сообщение от inetinf Посмотреть сообщение
например GetWindowRect вот эта хрень что возврощае размеры окна или координаты левого верхнего угла
Гугл и это от тебя скрывает?))
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 11:12
Цитата Сообщение от inetinf Посмотреть сообщение
или ScreenToClient тоже не понятно что делает
Что тут непонятного-то ?)

Указваешь 1-м параметром окно, 2-м параметром указываешь абсолютные экранные координаты некоей точки - ф-ция возвращает во 2-м параметре координаты этой точки, пересчитанные отн-но левого верхнего угла окна

Добавлено через 6 минут
Цитата Сообщение от inetinf Посмотреть сообщение
стоп относительно окна координаты вычисляются так верно
Это с какого же перепугу ?)

X:=Left + чего-то_там

К чему-то_там ты прибавляешь абсолютные экранные координаты формы)
И получаешь координаты чего-то_там относительно левого верхнего угла экрана.
А от тебя ожидаются координаты чего-то_там отн-но левого верхнего угла того окна, в котором это чего-то_там находится)

Похоже геометрию в ЦПШ ты беспардонно прогуливал))
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 11:17  [ТС]
Цитата Сообщение от mss Посмотреть сообщение
А от тебя ожидаются координаты чего-то_там отн-но левого верхнего угла того окна, в котором это чего-то_там находится)
аааааааааааааа как найти
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 11:25
Цитата Сообщение от inetinf Посмотреть сообщение
как найти
Как обычно - вычесть из абсолютных координат чего-то_там абсолютные координаты окна, на котором нарисовано это чего-то_там)
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 11:37  [ТС]
я совсем запутался
эта кнопка находится с низу от края окна 3% от высоты окна
и 30% от правого края окна от ширины окна
ума не прилажу как все это сделать
а еще если добавить зависимость от разрешиния уууууууууу

Добавлено через 1 минуту
есть возможность найти позицию пиксиля в окне по его цвету

Добавлено через 44 секунды
так будет легче чем подключать еще и разрешение
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 11:42
Цитата Сообщение от inetinf Посмотреть сообщение
кнопка находится с низу от края окна 3% от высоты окна
и 30% от правого края окна от ширины окна
Ну и ?
Ширина/высота окна известны, вычитаешь из ширины 30%, из высоты 3% - и вуаля !
Что еще надо-то ?)
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 12:00  [ТС]
при таком раскладе должно бить в центр окна но не чего не происходит
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
begin
//Shell Embedding
X:=WebBrowser1.Width-(WebBrowser1.Width Div 100)*50;
Y:=WebBrowser1.Height-(WebBrowser1.Height Div 100)*50;
edit1.Text:=inttostr(x);
edit2.Text:=inttostr(y);
i := MakeLong( X, Y );
 
 Result := FindWindow(nil,PChar(Form1.Caption));
 Result := FindWindowEX(Result, 0, 'Shell Embedding', nil);
 Result := FindWindowEX(Result, 0, 'Shell DocObject View', nil);
 Result := FindWindowEX(Result, 0, 'Internet Explorer_Server', nil);
 Result1 := FindWindowEX(Result, 0, 'MacromediaFlashPlayerActiveX', nil);
 Result := FindWindowEX(Result, Result1, 'MacromediaFlashPlayerActiveX', nil);
 SendMessage(Result, WM_ACTIVATE, 1, 1);
 PostMessage(Result, WM_LBUTTONDOWN, i, 0);
 PostMessage(Result,WM_MOUSEACTIVATE, i, 0);
 PostMessage(Result, WM_SETFOCUS, i, 0);
 PostMessage(Result, WM_LBUTTONUP, i, 0);
end;
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 12:07
Цитата Сообщение от inetinf Посмотреть сообщение
должно бить в центр окна
А где у тебя расчет центра кл.области окна MacromediaFlashPlayerActiveX ?
В упор не видно)
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 12:46  [ТС]
запустил инспектор и клиент вот что выдает первый флеш при активации на кнопку wm_windowposchanging
а вот что выдает второй
Кликните здесь для просмотра всего текста
<message>
<name>WM_KILLFOCUS</name>
<sent />
<time>08:12:12.0538</time>
<parameters>
<parameter>HWND receiving focus: 0x001703d6</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_KILLFOCUS</name>
<sent />
<time>08:12:12.0538</time>
<parameters>
<parameter>Return: 0x00000000</parameter>
</parameters>
</message>
<message>
<name>WM_IME_SETCONTEXT</name>
<sent />
<time>08:12:12.0539</time>
<parameters>
<parameter>wParam: 0x00000000</parameter>
<parameter>lParam: 0xc000000f</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_IME_SETCONTEXT</name>
<sent />
<time>08:12:12.0539</time>
<parameters>
<parameter>Return: 0x00000000</parameter>
</parameters>
</message>
<message>
<name>WM_IME_NOTIFY</name>
<sent />
<time>08:12:12.0539</time>
<parameters>
<parameter>wParam: 0x00000001</parameter>
<parameter>lParam: 0x00000000</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_IME_NOTIFY</name>
<sent />
<time>08:12:12.0539</time>
<parameters>
<parameter>Return: 0x00000000</parameter>
</parameters>
</message>
<message>
<name>WM_WINDOWPOSCHANGING</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>hwnd: 0x000606ba</parameter>
<parameter>hwndInsertAfter: HWND_TOP</parameter>
<parameter>Position: 0, 0</parameter>
<parameter>Size: 1016, 613</parameter>
<parameter>SWP_NOZORDER | SWP_HIDEWINDOW</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_WINDOWPOSCHANGING</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>Continue processing: False</parameter>
</parameters>
</message>
<message>
<name>WM_CHILDACTIVATE</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>wParam: 0x00000000</parameter>
<parameter>lParam: 0x00000000</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_CHILDACTIVATE</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>Return: 0x00000000</parameter>
</parameters>
</message>
<message>
<name>WM_WINDOWPOSCHANGED</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>hwnd: 0x000606ba</parameter>
<parameter>hwndInsertAfter: HWND_TOP</parameter>
<parameter>Position: 0, 0</parameter>
<parameter>Size: 1016, 613</parameter>
<parameter>SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOREDRAW | SWP_HIDEWINDOW</parameter>
</parameters>
</message>
<message return-value="1">
<name>WM_WINDOWPOSCHANGED</name>
<sent />
<time>08:12:13.0016</time>
<parameters>
<parameter>Continue processing: False</parameter>
</parameters>
</message>
<message>
<name>0x00000090</name>
<sent />
<time>08:12:13.0019</time>
<parameters>
<parameter>wParam: 0x00000000</parameter>
<parameter>lParam: 0x00000000</parameter>
</parameters>
</message>
<message return-value="1">
<name>0x00000090</name>
<sent />
<time>08:12:13.0019</time>
<parameters>
<parameter>Return: 0x00000000</parameter>
</parameters>
</message>


Добавлено через 48 секунд
Цитата Сообщение от mss Посмотреть сообщение
А где у тебя расчет центра кл.области окна MacromediaFlashPlayerActiveX ?
X:=WebBrowser1.Width-(WebBrowser1.Width Div 100)*50;
Y:=WebBrowser1.Height-(WebBrowser1.Height Div 100)*50;

Добавлено через 24 минуты
вот тут чувак который написал этот клиент в 2011 г
Клиент к онлайн игре "Танки Онлайн"
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 12:52
Цитата Сообщение от inetinf Посмотреть сообщение
X:=WebBrowser1.Width-(WebBrowser1.Width Div 100)*50;
Y:=WebBrowser1.Height-(WebBrowser1.Height Div 100)*50;
И где тут упоминание о MacromediaFlashPlayerActiveX ?

Цитата Сообщение от inetinf Посмотреть сообщение
вот тут чувак
Мне это зачем ?)
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 13:11  [ТС]
помогите расчитать центр на примере

Добавлено через 15 минут
вот так?
Delphi
1
2
3
4
 GetWindowRect(Result,r);
 x:=(r.Bottom-r.Top)div 50;
 Y:=(r.Right-r.Left)div 50;
i := MakeLong( X, Y );
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 13:15
var Rect: TRect;
..
GetClientRect(ХендлОкнаФлеша, Rect);
Центр.X := (Rect.Right - Rect.Left) div 2;
Центр.Y := (Rect.Bottom - Rect.Top) div 2;
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 13:18  [ТС]
перепутал x и y
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 13:19
Цитата Сообщение от inetinf Посмотреть сообщение
GetWindowRect
Да почему всего окна-то ?
Координаты не всего окна, а конкретно клиентской его части тебя должны интересовать !
И для этого существует GetClientRect.

Цитата Сообщение от inetinf Посмотреть сообщение
x:=(r.Bottom-r.Top)div 50;
Ты сам-то вкурил что понаписал ?)
Поделив ширину на 50 (!) получим середину))

Мдя..
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 13:30  [ТС]
ругается GetClientRect(Result,Rect);
[dcc32 Error] Unit1.pas(85): E2034 Too many actual parameters
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button3Click(Sender: TObject);
var
  Result,Result1: THandle;
  i,x,y:integer;
  Rect : TRect;
begin
 Result := FindWindow(nil,PChar(Form1.Caption));
 Result := FindWindowEX(Result, 0, 'Shell Embedding', nil);
 Result := FindWindowEX(Result, 0, 'Shell DocObject View', nil);
 Result := FindWindowEX(Result, 0, 'Internet Explorer_Server', nil);
 Result1 := FindWindowEX(Result, 0, 'MacromediaFlashPlayerActiveX', nil);
 Result := FindWindowEX(Result, Result1, 'MacromediaFlashPlayerActiveX', nil);
 GetClientRect(Result,Rect);
 X := (Rect.Right - Rect.Left) div 2;
 Y := (Rect.Bottom - Rect.Top) div 2;
 i := MakeLong( X, Y );
 SendMessage(Result, WM_ACTIVATE, 1, 1);
 PostMessage(Result, WM_LBUTTONDOWN, i, 0);
 PostMessage(Result,WM_MOUSEACTIVATE, i, 0);
 PostMessage(Result, WM_SETFOCUS, i, 0);
 PostMessage(Result, WM_LBUTTONUP, i, 0);
end;
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
25.09.2014, 13:34
Windows.GetClientRect
0
0 / 0 / 8
Регистрация: 29.07.2014
Сообщений: 514
25.09.2014, 13:43  [ТС]
[dcc32 Error] Unit1.pas(85): E2003 Undeclared identifier: 'Windows'

Добавлено через 3 минуты
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw,
Vcl.ToolWin, Vcl.ComCtrls;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2014, 13:43

Бот или кликер для игры Swordsman
здравствуйте хотелось бы получить совет для настройки бота для игры свордсман. Игра новая програм или тем по ней еще нету. Вот и хотелось...

Авто кликер
Здравствуйте. Подскажите пожалуйста. В какую сторону копать . На каком языке, может быть, в какой связке языков драйвером или еще чего...

Автоматизация нажатий кнопок в стороннем приложении (кликер для игры)
Привет! Начал изучать C#, ранее немного на java программил... Нужен Ваш совет! Решил написать кликер программу для игры, от Вас требуется...

Авто кликер по реф ссылкам
День добрый, хочу написать программу которая будет кликать по реф ссылке. Перед этим, хотел узнать, о целесообразности написания такой...

Описать базовый класс автомобиль и от него наследуются классы: грузовые авто, уборочные авто, спортивные авто
Всем привет!:) хочу спросить кто нибудь писал программы с наследованием на С++? Интересны задачи типа : &quot;Описать базовый класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru