Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Окна чужих программ в VB.NET Добавлено: 08.01.08 23:30  

Автор вопроса:  VoVaN | ICQ: 4921085 
Подскажите, плиз, как прочитать текст из окна чужой программы (например, аськи) средствами VB.Net...

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 HuKeJIb 7C9



Вопросов: 2
Ответов: 24
 Профиль | | #1 Добавлено: 09.01.08 09:04
Нужно получить handle окна, затем использовать функцию GetWindowText. А чтобы получить handle, надо использовать другие функции(GetActiveWindow, WindowFromPoint,...)

Ответить

Номер ответа: 2
Автор ответа:
 HuKeJIb 7C9



Вопросов: 2
Ответов: 24
 Профиль | | #2 Добавлено: 09.01.08 14:13
оказалось, GetWindowText для текстовых полей не работает :) Поэтому надо делать через SendMessage:


'на форму кидаем таймер и текстбокс со свойством multiline=true
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Public Const WM_COPY = &H301
    Public Const EM_SETSEL = &HB1
    Public Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Integer

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Clipboard.Clear()
        Me.Text = WindowFromPoint(Cursor.Position.X, Cursor.Position.Y)
        SendMessage(Me.Text, EM_SETSEL, 0, -1)
        SendMessage(Me.Text, WM_COPY, 0, 0)
        SendMessage(Me.Text, EM_SETSEL, 0, 0)
        TextBox1.Text = Clipboard.GetText()
    End Sub

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

ЗЫ: для остальных контролов можно юзать GetWindowText

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам