Доступ к TextBox чужого приложения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dima-pol
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 03.11.2008 (Пн) 17:47

Доступ к TextBox чужого приложения

Сообщение dima-pol » 29.10.2010 (Пт) 16:45

Здраствуйте!

Из своей программы на VB6 я хочу добраться до содержимого TextBox другой программы. Для этого на форму своей программы я поместил элемент picPoint типа PictureBox. Я нажимаю мышку на этом picPoint, перемещаю в окно другой программы и отпускаю на TextBox. Тем самым я определяю его hWnd а затем и его содержимое (found_text):

Код: Выделить всё
Private Sub picPoint_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    PointMode = True
    dl& = SetCapture(Form1.hwnd)
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim pt As POINTAPI

    If Not PointMode Then Exit Sub
    pt.x = x
    pt.y = y
    ClientToScreen Form1.hwnd, pt
    found_hWnd& = WindowFromPoint(pt.x, pt.y)

   count = GetWindowText(found_hWnd, buffer, 255)
   found_text = Left$(buffer, count)
End Sub


Это прекрасно работает, если TextBox в программе, созданной на VB6. Но если я нацеливаюсь мышкой к примеру на TextBox "мин", "сек" или "фрм" на вкладке "Файл/Предустановки/Общий" в Nero 6.3.1.15. то GetWindowText возвращает заголовок фрейма ("Панель состояния") в котором размещены вышеобозначенные TextBox.

Возможно ли средствами VB6 получить доступ к содержимому TextBox в Nero?

Спасибо.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Доступ к TextBox чужого приложения

Сообщение iGrok » 29.10.2010 (Пт) 21:25

dima-pol писал(а):GetWindowText возвращает заголовок фрейма ("Панель состояния") в котором размещены вышеобозначенные TextBox.

Где-то промахиваешься с координатами. Попробуй с координатами, полученными из http://msdn.microsoft.com/en-us/library/ms648390.aspx.
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Доступ к TextBox чужого приложения

Сообщение Хакер » 30.10.2010 (Сб) 2:21

dima-pol
  1. Каждому вызову SetCapture должен соответствовать вызов ReleaseCapture. У тебя последнего не вижу.
  2. В Mouse_Down не нужно вызывать SetCapture, оно и так вызывается.
  3. Твой код предназначен для получения основного текста окна. Не всякий TextBox будет являться окном (как в случае с Nero), а некоторые их тех, которые будут являться окном, запросто могут иметь основной текст окна, отличный от нужного тебе содержимого (скорее всего пустой). Универсального решения проблемы не сущетвует.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 68

    TopList  
cron