Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
162 / 110 / 45
Регистрация: 30.11.2012
Сообщений: 1,184
1

Получить состояние левой кнопки мыши

04.12.2015, 14:38. Показов 3443. Ответов 2
Метки нет (Все метки)

Здравствуйте!)
Подскажите пожалуйста как получить состояние левой кнопки мышки в любой момент времени из точки кода.
Например есть функция которая выполняется в разные моменты времени.
В этой функции нужно определить состояние левой клавиши мышки и в соответствии с этим сделать то или иное действие.

Что-то типа того:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void test ()
{
  while(Нажата левая клавиша мышки)
  {
    //****тут выполняется какой-то код****
    if(Левая клавиша мышки в данный момент отпущена){ break; }
  }
 
  while(Левая клавиша мышки не нажата)
  {
    //****тут выполняется какой-то код****
    if(Левая клавиша мышки в данный момент нажата){ break; }
  }
}
Добавлено через 28 минут
Не совсем то что я хотел, но уже что-то:
C#
1
if(Control.MouseButtons != MouseButtons.Left) { break; }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2015, 14:38
Ответы с готовыми решениями:

Отловить нажатие левой кнопки мыши в системе
Как отловить нажатие левой кнопки мыши в системе? Не в моей программе, а на любом окне в Win.

Cобытие MouseMove при нажатой левой кнопке мыши
Сделал у PictureBox событие MouseMove. Если просто провести мышкой над PictureBox все срабатывает,...

Как сделать клик левой кнопкой мыши без WinApi
Я не нашел, везде WinApi

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

2
214 / 213 / 114
Регистрация: 14.01.2013
Сообщений: 459
04.12.2015, 15:43 2
Лучший ответ Сообщение было отмечено Nalik как решение

Решение

Можно при помощи WINAPI функции GetAsyncKeyState, причем будет перехватывать и глобально, т.е. вне твоего приложения, вот небольшой пример:
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
 
namespace WINAPIGETKEYSTATE
{
    public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        public static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
        public Form1()
        {
            InitializeComponent();
            Timer tm = new Timer();
            tm.Interval = 100;
            tm.Tick+=tm_Tick;
            tm.Start();
        }
 
        private void tm_Tick(object sender, EventArgs e)
        {
            if (isLButtonDown())
            {
                MessageBox.Show("нажата");
            }
        }
        bool isLButtonDown()
        {
            Int16 state = GetAsyncKeyState(Keys.LButton);
            return (state & 0x8000) != 0;
        }
    }
}
1
162 / 110 / 45
Регистрация: 30.11.2012
Сообщений: 1,184
06.09.2018, 12:48  [ТС] 3
es_, спасибо, спустя столько лет наткнулся на свою же тему и ты меня еще раз выручил)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2018, 12:48

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Hooks (имитация нажатия левой кнопки мышки)
Полная задача состоит в том, что пользователь будет выбирать окно. Когда он будет нажимать например...

Реализовать смену картинки из ImageButton по клику левой кнопки мыши
Вообщем такая проблема...как реализовать смену картинки из ImageButton по клику левой кнопки мыши.

Как в стиле задать триггер на нажатие левой кнопки мыши?
Здравствуйте помогите разобраться с WPF в следующих вопросах... 1. Как в коде на c# присвоить...

Как сделать перемещение формы по клику левой кнопки мыши на задний фон приложения?
Как сделать перемещение формы по клику левой кнопки мыши на задний фон приложения? Пример изложен...


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

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

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