СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Как мне в TextBox другой программы ввести текст?

Ответ

В простейшем случае достаточно просто передать фокус этой форме (user32.dll\SetActiveWindowA(W)).
Затем если этот текстбокс там один, то просто бэйсиковским SendKeys'ом.
Если не один, или еще по какойто причине, то это делается чуть сложнее — через апи (user32.dll\SendMessageA(W))

Private Const EM_SETSEL = &HB1
Private Const EM_REPLACESEL = &HC2
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd _
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Function T_Y_P_E(BOXhWND As Long, TXT As String)
Dim ar() As Byte
ReDim ar(Len(TXT) — 1) As Byte
For i = 0 To Len(TXT) — 1
  ar(i) = CByte(Asc(Mid(TXT, i + 1, 1)))
Next i
SendMessage BOXhWND, EM_SETSEL, -1, 0
SendMessage BOXhWND, EM_REPLACESEL, False, ar(0)
End Function


Хвастунов Михаил



Copyright © 2000-2004 Сообщество Чайников
Контактная информация