Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 5
Регистрация: 25.08.2015
Сообщений: 129

Как отловить вид курсора вне формы

26.06.2017, 19:47. Показов 2826. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, собственно вопрос заключается как получить вид курсора вне формы.
Стремлюсь к коду который будет получать определенный вид курсора вне формы и тогда выполнять функцию.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.06.2017, 19:47
Ответы с готовыми решениями:

Отловить двойное нажатие клавиши вне формы
Есть программа в трее, есть глобальный хук, который, при нажатии на клавишу, разворачивает ее. Хук может отловить нажатие одной клавиши...

Как отловить щелчок мыши вне формы?
Как сделать что бы проверялось, если нажата левая кнопка мыши вне формы то выполнялось какое-либо действие?

MouseEvent, как отловить нажатие мыши вне формы проекта?
Подскажите пожалуйста, как отловить нажатие мыши ВНЕ формы проекта( а именно на на всем экране). хочу брать область для сканирования и...

6
2 / 2 / 0
Регистрация: 23.12.2016
Сообщений: 80
26.06.2017, 20:59
Перехватывай через API.
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
27.06.2017, 11:37
Лучший ответ Сообщение было отмечено aleks_pilipenko как решение

Решение

Заюзал это (restore надо будет сделать)

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
72
73
74
75
76
77
78
79
using MouseKeyboardActivityMonitor;
using MouseKeyboardActivityMonitor.WinApi;
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        [StructLayout(LayoutKind.Sequential)]
        struct POINT
        {
            public Int32 x;
            public Int32 y;
        }
 
        [StructLayout(LayoutKind.Sequential)]
        struct CURSORINFO
        {
            public Int32 cbSize;        // Specifies the size, in bytes, of the structure. 
                                        // The caller must set this to Marshal.SizeOf(typeof(CURSORINFO)).
            public Int32 flags;         // Specifies the cursor state. This parameter can be one of the following values:
                                        //    0             The cursor is hidden.
                                        //    CURSOR_SHOWING    The cursor is showing.
            public IntPtr hCursor;          // Handle to the cursor. 
            public POINT ptScreenPos;       // A POINT structure that receives the screen coordinates of the cursor. 
        }
 
        /// <summary>Must initialize cbSize</summary>
        [DllImport("user32.dll")]
        static extern bool GetCursorInfo(ref CURSORINFO pci);
 
        Hooker hooker;
        MouseHookListener mhListener;
 
        public Form1()
        {
            InitializeComponent();
 
            this.TopMost = true;
            this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
 
            this.FormClosing += Form1_FormClosing;
 
            hooker = new GlobalHooker();
 
            mhListener = new MouseHookListener(hooker);
            
            mhListener.MouseMove += Mhl_MouseMove;
 
            mhListener.Start();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            mhListener.Dispose();
        }
 
        private void Mhl_MouseMove(object sender, MouseEventArgs e)
        {
            try
            {
 
                CURSORINFO ci = new CURSORINFO();
                ci.cbSize = Marshal.SizeOf(typeof(CURSORINFO));
                var res = GetCursorInfo(ref ci);
 
                var cursor = new Cursor(ci.hCursor);
 
                label1.Text = $"{res};{cursor.ToString()};{ci.hCursor};[{ci.ptScreenPos.x};{ci.ptScreenPos.y}]";
            }
            catch(Exception ex)
            {
                label1.Text = ex.Message;
            }
        }
    }
}
Вложения
Тип файла: zip WindowsFormsApp1.zip (11.9 Кб, 27 просмотров)
2
2 / 2 / 5
Регистрация: 25.08.2015
Сообщений: 129
01.07.2017, 01:14  [ТС]
Woldemar89, спасибо за пример, но есть одно но.. не отображает значение из сторонних игр, а мне именно это в главную очередь и нужно, как быть?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
01.07.2017, 09:13
Цитата Сообщение от therud Посмотреть сообщение
не отображает значение из сторонних игр
1. говорить об этом нужно сразу,
2. крайне желательно обозначить, что за игра,
3. не майтесь ерундой (боты не так пишутся, да и вообще),
4. уже наверно помочь не смогу, максимум что в голову приходит - работа c DirectInput\перехват
0
2 / 2 / 5
Регистрация: 25.08.2015
Сообщений: 129
02.07.2017, 22:51  [ТС]
Woldemar89, у меня один вариант, отловить вид курсора в игре и затем выполнять функцию.
инжектится к dll игры я не умею, но как я понял это будет лучший вариант.

Предложите варианты, что можно придумать?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
03.07.2017, 06:44
Цитата Сообщение от therud Посмотреть сообщение
инжектится к dll игры я не умею
Цитата Сообщение от therud Посмотреть сообщение
Предложите варианты, что можно придумать?
Научиться инжектиться
EasyHook посмотрите как вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2017, 06:44
Помогаю со студенческими работами здесь

Узнать вид указателя мыши вне формы приложения
возможно ли такое?

Появляющаяся кнопка вне формы при наведении курсора
Пытаюсь реализовать что-то вроде гаджета для windows 7 на C# При наведении курсора на форму, сбоку появляется крестик закрытия программы....

Рандомное движение курсора мыши вне формы при попадании на пиксель определенного цвета
Здравствуйте, можно ли реализовать рандомное движение мыши вне формы и нажатие мыши, при наведении на определенный цвет?

Как отловить событие изменение вида курсора?
Здравствуйте друзья! Я новичок в VB.net. Подскажите, пожалуйста, как узнать изменился ли курсор мыши со стрелки на руку с...

Как отловить попадение курсора в заданный квадрат на канве
Изначально, как мне казалось, проблемы в вопросе никакой нет. Однако, оказалось, что справиться я могу только с 1 квадратом. Ситуация:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru