Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
pronto
-
- Постоялец
-
-
- Сообщения: 597
- Зарегистрирован: 04.12.2005 (Вс) 6:20
- Откуда: Владивосток
pronto » 10.01.2006 (Вт) 12:34
Возникла простая, на первый взгляд, задача - считать текстовое значение текстбокса, который принадлежит другой проге. А?
-
GB826
-
- Постоялец
-
-
- Сообщения: 312
- Зарегистрирован: 04.08.2005 (Чт) 0:58
- Откуда: Планета #3
-
GB826 » 10.01.2006 (Вт) 12:47
Наверно в поиск пошлют...
Пора уже всем хорошим людям собраться и убить всех плохих людей.
-
AndreyIl
-
- Обычный пользователь
-
-
- Сообщения: 82
- Зарегистрирован: 18.10.2005 (Вт) 16:17
- Откуда: г. Брянск
-
AndreyIl » 10.01.2006 (Вт) 12:48
FindWindow
FindWindowEx
Посмотри пример на vb.kiev.ua
-
Kostyan
-
- Постоялец
-
-
- Сообщения: 439
- Зарегистрирован: 20.09.2002 (Пт) 4:14
- Откуда: Россия, Уссурийск
-
Kostyan » 11.01.2006 (Ср) 11:11
Я знаю 3 способа изымания текста из текстбокса.
Первый:
- Код: Выделить всё
Public Function GetText1(ByVal hwnd As Long) As String
Dim l As Long, s As String, lc As Long, i As Long
GetText1 = ""
lc = SendMessageL(hwnd, EM_GETLINECOUNT, 0, 0) - 1
For i = 0 To lc
l = SendMessageL(hwnd, EM_LINEINDEX, i, 0)
l = SendMessageL(hwnd, EM_LINELENGTH, l, 0) + 1
s = String$(l + 2, 0)
Mid$(s, 1, 1) = Chr$(l And &HFF)
Mid$(s, 2, 1) = Chr$(l \ &H100)
l = SendMessageS(hwnd, EM_GETLINE, i, s)
GetText1 = GetText1 & Left$(s, l) & IIf(lc = 0 Or lc = i, "", vbCrLf)
Next
End Function
Второй:
- Код: Выделить всё
Public Function GetText2(ByVal hwnd As Long) As String
Dim l As Long, s As String
l = SendMessageL(hwnd, WM_GETTEXTLENGTH, 0, 0) + 1
s = String$(l, 0)
l = SendMessageS(hwnd, WM_GETTEXT, l, s)
GetText2 = Left$(s, l)
End Function
Третий:
- Код: Выделить всё
Public Function GetText3(ByVal hwnd As Long) As String
Dim l As Long, s As String
l = GetWindowTextLength(hwnd) + 1
s = String$(l, 0)
l = GetWindowText(hwnd, s, l)
GetText3 = Left$(s, l)
End Function
2 и 3 практически идентичны, и применимы к любым окнам. А вот первый можно использовать ТОЛЬКО с текстбоксами.
P.S. SendMessageS и SendMessageL:
- Код: Выделить всё
Public Declare Function SendMessageS Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Declare Function SendMessageL Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Нет ничего невозможного для человека с интеллектом.
-
pronto
-
- Постоялец
-
-
- Сообщения: 597
- Зарегистрирован: 04.12.2005 (Вс) 6:20
- Откуда: Владивосток
pronto » 11.01.2006 (Ср) 11:58
Всем спасибо за содействие!
Наконец-то разобрался...
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, SemrushBot и гости: 172