Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
1

Бот для онлайн игры (Wow, lineage, RF Online и т.д.)

07.02.2013, 06:42. Показов 3861. Ответов 20
Метки нет (Все метки)

Всем привет!
Подскажите можно ли написать бота для онлайн игры в VB Net?
Если да то можно ссылку на материал или напишите примерно как это должно выглядеть!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2013, 06:42
Ответы с готовыми решениями:

Программа-бот для онлайн игры WoW
Здравствуйте. Пишу программу-бота для онлайн игры (WoW) на C# используя библиотеку BlackMagic для...

Защита для онлайн игры Lineage 2
Здравствуйте дорогие программисты. Нужна очень срочно ваша помощь. Имееться код написанный на...

Маленький бот на Curl для online игры
Всем доброго дня! Уважаемые специалисты по Curl. Существует такая игра Grepolis....

Бот для онлайн игры
Доброго времяни суток! Озадачила меня идея написать бота для онлайн игрушки. В общем то и...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
20
2 / 2 / 2
Регистрация: 03.01.2013
Сообщений: 51
13.02.2013, 22:13 2
если ли необходимость в такой реализации???
дело в том что у программы должен быть интеллект....
По мимо всего должен быть реализован хук как самое программы так и эмулятор нажатий....
беспалевность такого софта тоже большой геморой...
1
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
13.02.2013, 22:24  [ТС] 3
Исчерпано.

Помогите с этим:
Программка нажимает каждую секунду пробел. Мне нужно сделать так чтобы я выбирал из списка процессов нужный процесс и после выбора пробел нажимался только в том процессе/программе

Примерно так:
0
2 / 2 / 2
Регистрация: 03.01.2013
Сообщений: 51
15.02.2013, 00:41 4
как по мне легче это делать напрямую...вы же не используете пинцет чтобы держать ими ключи чтобы открывать ключами дверь))) вы держите ключи и открываете дверь...В любом случае вам прийдется изучать хук..или же через таймер пишите событие нажатия на пробел
0
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
15.02.2013, 08:31  [ТС] 5
Цитата Сообщение от tigehol Посмотреть сообщение
В любом случае вам прийдется изучать хук..или же через таймер пишите событие нажатия на пробел
Вы наверно меня не поняли или я неправильно изъяснился...
Моя программа уже итак нажимает на пробел через таймер! Это было не трудно, теперь же другая задача... нужно сделать так что бы я мог выбрать процесс в котором она будит нажимать пробел! Сейчас пробел нажимается там где весит фокус...

Пример:
Я включаю программу и в игре начинает постоянно нажимается пробел, но если я открою блокнот и начну там печатать, то у меня там будит постоянно нажиматься пробел, а в игре нечего происходить не будит, так как фокус не на игре, а на блокноте!

По этому мне нужна привязка к процессу!
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
17.02.2013, 12:32 6
NekoKira,
1. Сканируешь все процессы в свой combobox
2. Потом по его handle отправляешь сообщение (WM_KEYDOWN)
P.S. По отправке сообщения куча информации в интренете. Что-то подобное было в книге Климова.
0
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
17.02.2013, 20:25  [ТС] 7
Цитата Сообщение от Димон_ Посмотреть сообщение
NekoKira,
1. Сканируешь все процессы в свой combobox
2. Потом по его handle отправляешь сообщение (WM_KEYDOWN)
P.S. По отправке сообщения куча информации в интренете. Что-то подобное было в книге Климова.
Суть то что мне нужно я как бы и сам понимаю)

Можно код сканирования и отправки нажатия, если не трудно?
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
17.02.2013, 20:56 8
NekoKira, Вытаскиваешь процессы:
C#
1
using System.Diagnostics;
C#
1
2
3
4
5
6
7
8
9
10
Process[] p;
//------------------
p = Process.GetProcesses();                  
for (int i = 1; i <= p.Length; i++)
   {
    Console.WriteLine(i + ") " + p[i - 1].ProcessName);
    Console.CursorLeft = 50;
    Console.CursorTop--;
    Console.WriteLine(p[i - 1].Handle);                           
   }
Добавлено через 5 минут
NekoKira, По отправке сообщений:
Импорт SendMessage
C#
1
2
3
4
5
6
7
[DllImport("user32.dll")]
public static extern int SendMessage(
                  int hWnd,      // handle to destination window
                  uint Msg,       // message
                  long wParam,  // first message parameter
                  long lParam   // second message parameter
                  );
Возможно еще FindWindow импортировать, но должно хватить GetProcesses.
1
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
17.02.2013, 20:56  [ТС] 9
Цитата Сообщение от Димон_ Посмотреть сообщение
NekoKira, Вытаскиваешь процессы:
C#
1
using System.Diagnostics;
C#
1
2
3
4
5
6
7
8
9
10
Process[] p;
//------------------
p = Process.GetProcesses();                  
for (int i = 1; i <= p.Length; i++)
   {
    Console.WriteLine(i + ") " + p[i - 1].ProcessName);
    Console.CursorLeft = 50;
    Console.CursorTop--;
    Console.WriteLine(p[i - 1].Handle);                           
   }
Извините, а на visual studio (Basic) как это реализовать?
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
17.02.2013, 21:01 10
NekoKira, Это C#. Как на VB выглядит это понятия не имею. Но вроде жутко похоже все(по-крайней мере читать нормально )
Создай консольное приложение, добавь пространство имен Diagnostics.
и вызови
C#
1
Dim p As Process() = Process.GetProcesses()
P.S.http://msdn.microsoft.com/ru-r... -snippet-2
1
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
17.02.2013, 21:05  [ТС] 11
Цитата Сообщение от Димон_ Посмотреть сообщение
NekoKira, Это C#. Как на VB выглядит это понятия не имею. Но вроде жутко похоже все(по-крайней мере читать нормально )
Создай консольное приложение, добавь пространство имен Diagnostics.
и вызови
C#
1
Dim p As Process() = Process.GetProcesses()
P.S.http://msdn.microsoft.com/ru-r... -snippet-2
Спасибо большее!!!

Конечно это не то что я хотел, но лучше самому учить)
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
17.02.2013, 21:08 12
NekoKira, Если ты с нуля пишешь, то не лезь пока в дебри Win32..напиши простенький сканер процессов с возможностью их убивать, смотреть сколько места занимает и так далее. Потом уж прикрутишь к нему SendMessage.
0
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
17.02.2013, 21:19  [ТС] 13
Цитата Сообщение от Димон_ Посмотреть сообщение
NekoKira, Если ты с нуля пишешь, то не лезь пока в дебри Win32..напиши простенький сканер процессов с возможностью их убивать, смотреть сколько места занимает и так далее. Потом уж прикрутишь к нему SendMessage.
Спасибо за совет!)

Киллать процессы уже умею)
0
168 / 131 / 29
Регистрация: 16.02.2013
Сообщений: 867
18.02.2013, 15:04 14
никаких процессов сканить не надо. это же доп. нагрузка на систему, и изобретение велосипеда. используй Autoit3X.dll можешь в инете поискать, вот в посте есть пример на шарпе, где идет эмуляция нажатия клавиш в неактивное окно по классу - https://www.cyberforum.ru/csha... ost4146473 . можно и заголовок окна использовать

Добавлено через 1 минуту
а так же можешь ознакомиться с скриптовым языком аутоита, он как раз для таких вот задач предназначен.
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
18.02.2013, 15:32 15
Winhttp22, А самому не интереснее?
взять хендл можно одной единственной функцией FindWindow и слать по ней..разницы-то? (просто человек учится, зачем его путать?)
0
168 / 131 / 29
Регистрация: 16.02.2013
Сообщений: 867
18.02.2013, 15:45 16
Димон_, я его не путаю. просто предложил более легкий вариант. если есть уже все готовое - зачем что то новое изобретать?
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
18.02.2013, 15:59 17
Winhttp22, надо хотя бы понимать прежде чем использовать.
0
168 / 131 / 29
Регистрация: 16.02.2013
Сообщений: 867
18.02.2013, 16:07 18
Димон_, для этого существует документация + книги
0
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
19.02.2013, 09:31  [ТС] 19
Цитата Сообщение от Димон_ Посмотреть сообщение
NekoKira, Вытаскиваешь процессы:
C#
1
using System.Diagnostics;
C#
1
2
3
4
5
6
7
8
9
10
Process[] p;
//------------------
p = Process.GetProcesses();                  
for (int i = 1; i <= p.Length; i++)
   {
    Console.WriteLine(i + ") " + p[i - 1].ProcessName);
    Console.CursorLeft = 50;
    Console.CursorTop--;
    Console.WriteLine(p[i - 1].Handle);                           
   }
Добавлено через 5 минут
NekoKira, По отправке сообщений:
Импорт SendMessage
C#
1
2
3
4
5
6
7
[DllImport("user32.dll")]
public static extern int SendMessage(
                  int hWnd,      // handle to destination window
                  uint Msg,       // message
                  long wParam,  // first message parameter
                  long lParam   // second message parameter
                  );
Возможно еще FindWindow импортировать, но должно хватить GetProcesses.
Почему то везде "Process" подчеркивает красным!
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
19.02.2013, 09:43 20
NekoKira, вверху добавь
C#
1
using System.Diagnostic;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2013, 09:43

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Бот для онлайн-игры
Всем привет! Пишу программу, которая могла бы быстро прокачать Волшебную палочку пользователя на...

Бот для браузерной онлайн игры
Всем привет. Хочу написать бота для браузерной онлайн игры. Необходимости в боте нет совсем, это...

Бот для браузерной онлайн игры
Игра: Легенда наследие драконов Хочу автоматизировать монотонный процесс кликания по кнопкам....

Как написать бот для онлайн игры
Допустим что есть некая онлайн игрушка. ЧТо нужно прочитать посмотреть, что б понять как написать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.