Страница: 1 |
Страница: 1 |
Вопрос: VB.Net и мышь...
Добавлено: 15.06.08 17:36
Автор вопроса: DLF
Подскажите начинающему как отследить нажатие кнопки мыши вне формы?
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
DLF
Вопросов: 9
Ответов: 53
Профиль | | #1
Добавлено: 15.06.08 23:52
Раньше ниже приведенный пример работал в VB6.0.
В VB.Net 2008 не работает... Очень нужно. Подскажите
кто-нибудь.
Public Function MButtonDown(btButton As Byte) As Boolean
Select Case btButton
Case Is = 1
MButtonDown = CBool(GetKeyState(vbKeyLButton) And &H8000)
Case Is = 2
MButtonDown = CBool(GetKeyState(vbKeyRButton) And &H8000)
Case Is = 3
MButtonDown = CBool(GetKeyState(vbKeyMButton) And &H8000)
End Select
End Function
Номер ответа: 2
Автор ответа:
DLF
Вопросов: 9
Ответов: 53
Профиль | | #2
Добавлено: 15.06.08 23:54
If MButtonDown(1) Then MsgBox "Левая клавиша нажата!"
If MButtonDown(2) Then MsgBox "Правая клавиша нажата!"
If MButtonDown(3) Then MsgBox "Средняя клавиша нажата!"
End Sub
Номер ответа: 3
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #3
Добавлено: 18.06.08 09:20
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Example
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (Win32.IsKeyPressed(Keys.LButton)) MessageBox.Show("Left mouse button is pressed"
if (Win32.IsKeyPressed(Keys.RButton)) MessageBox.Show("Right mouse button is pressed"
if (Win32.IsKeyPressed(Keys.MButton)) MessageBox.Show("Middle mouse button is pressed"
}
}
public class Win32
{
[llImport("user32", CharSet = CharSet.Auto)]
private static extern short GetKeyState(Keys virtualKey);
public static bool IsKeyPressed(Keys key)
{
return ((GetKeyState(key) & 256) == 256);
}
}
}
Номер ответа: 4
Автор ответа:
DLF
Вопросов: 9
Ответов: 53
Профиль | | #4
Добавлено: 18.06.08 23:17
Спасибо, ника, но как это будет выглядеть
в Visual Basic Net?
Номер ответа: 5
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #5
Добавлено: 19.06.08 06:57
так
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Namespace Example
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
If Win32.IsKeyPressed(Keys.LButton) Then
MessageBox.Show("Left mouse button is pressed"
End If
If Win32.IsKeyPressed(Keys.RButton) Then
MessageBox.Show("Right mouse button is pressed"
End If
If Win32.IsKeyPressed(Keys.MButton) Then
MessageBox.Show("Middle mouse button is pressed"
End If
End Sub
End Class
Public Class Win32
<llImport("user32", CharSet := CharSet.Auto)> _
Private Shared Function GetKeyState(ByVal virtualKey As Keys) As Short
End Function
Public Shared Function IsKeyPressed(ByVal key As Keys) As Boolean
Return ((GetKeyState(key) And 256) = 256)
End Function
End Class
End Namespace
Номер ответа: 6
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #6
Добавлено: 19.06.08 09:26
BG(Алексей), зачот! )))
Номер ответа: 7
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #7
Добавлено: 19.06.08 17:05
Спасибо
Я просто раньше тебя попал на эту страницу после его последнего вопроса.
Номер ответа: 8
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #8
Добавлено: 19.06.08 20:47
В любом случае у меня VB нету, так что правильно сделал, что перевел на понятный для него диалект.
Номер ответа: 9
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #9
Добавлено: 20.06.08 22:14
ника, Дай свой е-маил, или напиши на мой.
Есть пара приватных вопросов.
alex33w@hotmail.com
Номер ответа: 10
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #10
Добавлено: 21.06.08 16:02
Не люблю C#, какой-то он странный...
PS Ника, привет!
Номер ответа: 11
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #11
Добавлено: 21.06.08 17:04
Неее.. нифига.. никаких приватных вопросов! все общение через форум!
Steel Brand, привет!
Номер ответа: 12
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #12
Добавлено: 22.06.08 03:58
Номер ответа: 13
Автор ответа:
DLF
Вопросов: 9
Ответов: 53
Профиль | | #13
Добавлено: 27.06.08 22:13
Спасибо, BG!