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

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

25.07.2017, 19:26. Показов 1366. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru