Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Visual Basic .NET - Система

Все примеры / Система

Как получить текст, находящийся под курсором мышки?

Автор: Алексей Немиро | добавлено: 05.09.2010, 12:31 | просмотров: 3602 (1+) | комментариев: 0 | рейтинг: *x8
Пример демонстрирует, как можно получить текст, находящийся под курсором мышки в любом окне системы. В примере используются API-функции SendMessage, GetWindowText, GetClassName, WindowFromPoint и GetDC.

Инструкции

Создайте новый проект типа Windows Form. Разместите на форме элемент Timer: Timer1; и три элемента Label: lblHandle, lblClassName, lblWText. Вставьте ниже следующий код. У Timer1 установите интервал 100, и включите его (Timer1.Enabled = True). После запуска проект, в Label должен появляться текст, в зависимости от того, что находится по курсором мышки.

Код

'Рабочий пример находится в zip-файле под кодом.

Public Const SRCCOPY = &HCC0020
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Integer) As Integer
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Integer
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" ( _
ByVal hwnd As Integer, _
ByVal lpClassName As StringBuilder, _
ByVal nMaxCount As Integer) As Integer
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Integer, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
ByVal lParam As Object) As Integer
Public Declare Ansi Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
ByVal hwnd As Integer, _
ByVal lpString As StringBuilder, _
ByVal nMaxCount As Integer) As Integer

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
 Dim lRet As Integer, hHandle As Integer
 hHandle = WindowFromPoint(Cursor.Position.X, Cursor.Position.Y)
 lblHandle.Text = hHandle.ToString()

 Dim aClass As New StringBuilder(128)
 lRet = GetClassName(hHandle, aClass, 128)
 lblClassName.Text = Microsoft.VisualBasic.Left(aClass.ToString(), lRet)

 Dim s As New StringBuilder(256)
 lRet = GetWindowText(hHandle, s, s.Capacity)
 lblWText.Text = s.ToString()
End Sub
Файлы GetTextUnderMouse.zip (105,82 Кб)
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики