Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
9 / 9 / 0
Регистрация: 04.03.2015
Сообщений: 71

Не работает имитация клика мышью

25.07.2017, 19:26. Показов 1400. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Только начал изучать C#, пишу небольшого бота. Подскажите, пожалуйста, почему не получается имитировать клик ЛКМ в окне paint?
Код:
Кликните здесь для просмотра всего текста
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
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace windowNS
{
    class window
    {
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        static void Main(string[] args)
        {
            PressLeftMouse();
            
        }
 
        static IntPtr GetWindowDescriptor(string name)
        {
            IntPtr proc = FindWindow(null, name);
            Console.WriteLine(Convert.ToString(proc));  //если не 0 - окно нашлось
            //Console.ReadKey();
            return proc;
        }
 
        private static IntPtr MakeLParam(int X, int Y)
        {
            return (IntPtr)((Y << 16) | (X & 0xffff));
        }
 
        public static void PressLeftMouse()
        {
            //mouse_event((uint)MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
            //mouse_event((uint)MouseEventFlags.LEFTUP, 0, 0, 0, 0); 
 
            SendMessage(GetWindowDescriptor("Безымянный - Paint"), (uint)WindowMessages.WM_LBUTTONDOWN, (IntPtr)null, MakeLParam(350, 350));
            Thread.Sleep(100);
            SendMessage(GetWindowDescriptor("Безымянный - Paint"), (uint)WindowMessages.WM_LBUTTONUP, (IntPtr)null, MakeLParam(350, 350));
        }
 
        
        [DllImport("user32", SetLastError = true)]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
 
        [Flags]
        public enum WindowMessages : uint
        {
            WM_MOUSEMOVE = 0x200,
            WM_LBUTTONDOWN = 0x201,
            //WM_RBUTTONDOWN = 0x204,
            //WM_MBUTTONDOWN = 0x207,
            WM_LBUTTONUP = 0x202,
            //WM_RBUTTONUP = 0x205,
            //WM_MBUTTONUP = 0x208,
            WM_LBUTTONDBLCLK = 0x203,
            //WM_RBUTTONDBLCLK = 0x206,
            //WM_MBUTTONDBLCLK = 0x209,
            //WM_MOUSEWHEEL = 0x020A,
            //WM_KEYDOWN = 0x100,
            //WM_KEYUP = 0x101,
            //WM_SYSKEYDOWN = 0x104,
            //WM_SYSKEYUP = 0x105,
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2017, 19:26
Ответы с готовыми решениями:

Имитация клика мыши по активной форме
Юзал поиск, но находил лишь имитацию клика мыши по координатам или неактивной форме) Нужно простое решение имитации клика левой и правой...

Имитация клика мыши
Доброго времени суток. Столкнулся с такой проблемой: Необходимо имитировать клик мышки в WebBrowser, в определенной координате - клик...

Имитация клика мышкой
Мне надо программно нажать на точку на экране, как это можно реализовать? Если пишу instance.Click(100, 100, 200, 200, &quot;Left&quot;,...

6
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
25.07.2017, 19:44
MSha, По идее, ты нашел само окно программы, а теперь с помощью FindWindowEx надо найти класс Afx:00007FF72A620000:8, он вроде должен меняться
0
9 / 9 / 0
Регистрация: 04.03.2015
Сообщений: 71
25.07.2017, 19:54  [ТС]
А поподробнее можно? Почему именно этот класс? Просто paint был выбран для примера, бот пишется для эмуляции кликов в окне флэш плеера, там тоже придется искать классы?
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
25.07.2017, 22:12
Цитата Сообщение от MSha Посмотреть сообщение
Почему именно этот класс?
Ну ты в пеинте не во всей программе можешь рисовать, поверх кнопок же нельзя рисовать, потому что там выделена специальная область. Ее класс я взял не из воздуха, ты можешь самостоятельно класс определить, например в spy++
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
25.07.2017, 22:17
Думаю что со флешем просто так такая фича не прокатит
0
9 / 9 / 0
Регистрация: 04.03.2015
Сообщений: 71
26.07.2017, 11:38  [ТС]
Ну, если более точно, то это скорее окно браузера, внутри которого работает приложение на флеше. Браузерная игра, в общем.

Добавлено через 3 минуты
А можно ли, вообще не обращаясь к классам формы, просто кликать там по указанным координатам как-нибудь? Желательно еще и чтобы приложение было свернуто. Знаю, что можно просто эмулировать клик в точке на экране, но для этого приложение должно быть активно и находиться на переднем плане.
0
 Аватар для C5674
8 / 8 / 0
Регистрация: 08.07.2015
Сообщений: 190
26.07.2017, 15:13
MSha, думаю для этого тебе нужен будет API этого приложения, что бы в свернутом окне что то происходило. Либо я чего то не знаю, послежу за темой, тоже интересно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.07.2017, 15:13
Помогаю со студенческими работами здесь

Имитация клика мыши на форме
Попытался написать имитацию мыши с помощью этого гайда http://msdn.microsoft.com/en-us/library/ms171548.aspx Но вот это не заработало: ...

Универсальная обработка клика мышью
Всем привет! Допустим, есть у меня 10 каких-либо объектов на форме. Пусть для примера это будет 10 картинок. При нажатии на каждую из них...

Имитация клика левой кнопки мыши
здравствуйте. хочу сделать автокликер, который работает по следующему принципу - нажимаю например F2 и он запускается. я открываю...

WebBrowser имитация нажатия клика мыши
Всем привет, мне нужна рекомендация. Хочу написать бот для игры, по принципу кликера, но хочу что бы он был автономным. Суть такова, есть...

Обработка повторного клика мышью в TextBox
Как оброботать повторное нажатие на TextBox ? private void textBox_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru