Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Перехват событий мыши на C#

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Перехват событий мыши на C#
Имя
Сообщение << Старые топики   Новые топики >>
Перехват событий мыши на C# - 2010-04-23 21:39:12.670000   
AndreyXYZ

Сообщений: 56
Оценки: 0
Присоединился: 2009-01-29 22:14:51.710000
Здравствуйте!
Я пишу приложение на С#. Мне необходимо сохранять с файл моменты времени, когда производились события нажатия на левую и правую кнопку мыши (нажатия не обязательно на элементы моей формы), и координаты курсора мыши через определенные промежутки времени.
Как это можно сделать? Можно ли обойтись без использования драйвера?
С уважением, Андрей.
Post #: 1
RE: Перехват событий мыши на C# - 2010-04-24 00:15:19.190000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Ну что ж ты сразу за драйвер то)
public class Win32MessageFilter: System.Windows.Forms.IMessageFilter { public bool MessageFilter(ref Message msg) { if (msg.Msg==513) //левая мыши { MessageBox.Show("PROFIT"); return true; } return false; } } -------------------- static Win32MessageFilter my_filter_class= new Win32MessageFilter(); ------------------- Application.AddMessageFilter(my_filter_class); Вообще почти всё из Win32 доступно в .NET так или иначе,кажись. Код распихать в нужные места, там где 513 должен быть ID нужного системного сообщения. msg.LParam и msg.WParam аналогичны обычным.
Post #: 2
RE: Перехват событий мыши на C# - 2010-05-06 02:10:44.553333   
AndreyXYZ

Сообщений: 56
Оценки: 0
Присоединился: 2009-01-29 22:14:51.710000
На строке
public class Win32MessageFilter : System.Windows.Forms.IMessageFilter
при компиляции возникает ошибка
Error    1    'Authentification.Win32MessageFilter' does not implement interface member 'System.Windows.Forms.IMessageFilter.PreFilterMessage(ref System.Windows.Forms.Message)'
Post #: 3
RE: Перехват событий мыши на C# - 2010-05-06 23:40:58.176666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Эхх). Вот,тупо спастил MSDN:
// Creates a message filter. [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] public class TestMessageFilter : IMessageFilter { public bool PreFilterMessage(ref Message m) { // Blocks all the messages relating to the left mouse button. if (m.Msg &gt;= 513 && m.Msg &lt;= 515) { Console.WriteLine("Processing the messages : " + m.Msg); return true; } return false; } }
Пробуй.
Post #: 4
RE: Перехват событий мыши на C# - 2010-05-09 23:13:45.220000   
AndreyXYZ

Сообщений: 56
Оценки: 0
Присоединился: 2009-01-29 22:14:51.710000
Теперь заработало. Но это не то, что мне было нужно. Сообщения перехватываются только в том случае, если я кликаю на форме. Как сделать, чтобы события мыши перехватывались когда я кликаю, например, на рабочем столе или в любом другом месте, не имеющем отношения к моей форме на C#?

Post #: 5
RE: Перехват событий мыши на C# - 2010-05-10 02:04:00.356666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Oy vey. Use Brain,Luke, - not Force. Чтобы опять небыло проблем с мелочами,отвечу "посылами":
раз , два , три , четыре
База ведь, поискал бы,чтоли.

//Там не именно твоё, разберешься?
Post #: 6
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Перехват событий мыши на C#







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.