Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
DonDimon
0 / 0 / 0
Регистрация: 18.07.2016
Сообщений: 1
1

Написание автокликера для игры

25.02.2017, 12:07. Просмотров 570. Ответов 3
Метки нет (Все метки)

Возникла проблема в написании автокликера для игры.

Из текстовой строки берется название окна и по этому названию находится дескриптор окна. Затем в этом окне каждые 5 секунд должно эмулироваться нажатие клавиши r. Программа отлично показала себя в тестах с калькулятором и игрой Minecraft, но в нужной мне игре выдает исключение. Код формы и текст исключения привожу ниже.

P.S. Перерыл гору информации, конкретно моего случая найти не удалось.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
 
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(
            string lpClassName,
            string lpWindowName
            );
 
        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
 
        public Form1()
        {
            InitializeComponent();
        }
 
        IntPtr h;
 
        private void button1_Click(object sender, EventArgs e) //старт
        {
            IntPtr h = FindWindow(null, textBox1.Text);
            if (h == IntPtr.Zero)
            {
                MessageBox.Show("Window is not running.");
                return;
            }
            SetForegroundWindow(h);
            timer1.Enabled = true;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            SendKeys.SendWait("{r}");
        }
 
        private void button1_Click_1(object sender, EventArgs e) //пауза
        {
            timer1.Enabled = false;
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e) //проверка активноти окна
        {
            IntPtr h1 = FindWindow(null, textBox1.Text);
            if (h1 == IntPtr.Zero)
            {                
                MessageBox.Show("Window is not running.");
                return;
            }
            else
            {
                MessageBox.Show("Window is running.");
            }
        }
 
    }
}
************** Текст исключения **************
System.ComponentModel.Win32Exception (0x80004005): Не найден указанный модуль
в System.Windows.Forms.SendKeys.SendInput(Byte[] oldKeyboardState, Queue previousEvents)
в System.Windows.Forms.SendKeys.Send(String keys, Control control, Boolean wait)
в System.Windows.Forms.SendKeys.SendWait(String keys)
в WindowsFormsApplication1.Form1.timer1_Tick(Object sender, EventArgs e) в C:\Programming\MS Visual Studio\Progects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs:строка 40
в System.Windows.Forms.Timer.OnTick(EventArgs e)
в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2017, 12:07
Ответы с готовыми решениями:

Написание бота для игры
Есть идея написания хорошего бота для игры, вот только не знаю в какую сторону копать. Понял, что...

Написание тейнера для игры Purble Place
Я сделала трейнер, он работает, только проблемы со статической памятью компьютера, при повторном...

Написание программы для запуска файла игры Aion.exe
Доброго времени суток. Возник такой вопрос: есть всем известная игра Aion для которой понадобилось...

Написание игры "виселица" или любой другой не сложной игры
нужна помощь в написании игры "виселица" или любой другой не сложной игры на с# по сети

Написание игры Домино
Пытаюсь написать Домино, но столкнулся с проблемой. Я не совсем понимаю как создать AI и как вообще...

3
bibe
0 / 0 / 0
Регистрация: 12.01.2017
Сообщений: 9
08.03.2017, 00:45 2
Некоторые игры игнорят программные нажатия (например WOT), не знаю с чем это связано.
Вроде помогает запуск от имени администратора
0
omi4691
2 / 2 / 1
Регистрация: 23.03.2017
Сообщений: 17
24.03.2017, 03:21 3
SendWait замени на Send.
0
aquaMakc
476 / 389 / 68
Регистрация: 14.02.2014
Сообщений: 1,891
Завершенные тесты: 1
24.03.2017, 13:05 4
Цитата Сообщение от bibe Посмотреть сообщение
Некоторые игры игнорят программные нажатия (например WOT), не знаю с чем это связано.
борьба с ботоводами и читами.
0
24.03.2017, 13:05
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2017, 13:05

Написание игры судоку
Собралса написать игру судоку ,но както не уверен в своих силах ,может кто писал чтото подобное...

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

С чего начать написание игры Домино
Добрый вечер. Подскажите пожалуйста с чего начать, получил задание написать игру "домино", а что и...


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

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

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