Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Работа с другим приложением: Как внести текст ... Добавлено: 07.11.03 19:25  

Автор вопроса:  Alexander N | Web-сайт: sasha.samogon.info
Как  внести текст в текстовое поле на странице в браузере ИЕ (при том, что я не знаю идентификатор поля)? Заранее благодарен

Ответить

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

Номер ответа: 1
Автор ответа:
 xaker^4



Вопросов: 4
Ответов: 7
 Профиль | | #1 Добавлено: 07.11.03 20:47

Брось на форму текстбокс(в нём пиши адрес) и кнопку(нажимай и он вставится):

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
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
Private Const WM_SETTEXT = &HC
Private Const WM_PASTE = &H302
Private Sub Command1_Click()
hWnd2 = FindWindow("IEFrame", vbNullString) 'Или hWnd2 = FindWindow( vbNullString,name) - где name  заголовок окна
hWnd2 = FindWindowEx(hWnd2, 0, "WorkerW", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "ReBarWindow32", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "ComboBoxEx32", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "ComboBox", vbNullString)
hWnd2 = FindWindowEx(hWnd2, 0, "Edit", vbNullString)
Clipboard.Clear
Clipboard.SetText Text1.Text
SendMessage hWnd2, WM_SETTEXT, 0, 0
SendMessage hWnd2, WM_PASTE, 0, 0
End Sub

 

 

Ответить

Номер ответа: 2
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #2
Добавлено: 08.11.03 14:04

Дело в том, что мне надо вставить на страницу в в браузере. А данный код всталяет текст в адресную строку.

Ответить

Номер ответа: 3
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #3 Добавлено: 08.11.03 14:31

А ты хоть что-нибудь о поле знаешь?

Ответить

Номер ответа: 4
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #4
Добавлено: 08.11.03 14:52

Ну когда сохранить страницу на диск и открываю ее блокнотом, я могу увидеть имя текстого поля, ее тип и значение (введенный текст). И еще. На странице еще 4 таких текстовых поля, в которые мне нужно вставить текст, других таких полей на этой странице нет.

Ответить

Номер ответа: 5
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #5 Добавлено: 08.11.03 15:03

Для начала узнай сколько всего элеметов поддерживают фокус:

жёлкни на первом поле и нажимай tab и считай сколько будет раз(ты должен опять вернутся в это поле)

Ответить

Номер ответа: 6
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #6
Добавлено: 08.11.03 15:29

После адресной строки фокус переходит на 1е поле, 2е поле, 3е поле, 4поле, 5поле, потом на кнопку, и снова на адресную строку.

З.Ы. У тебя есть ICQ?

Ответить

Номер ответа: 7
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #7 Добавлено: 08.11.03 18:17

Аськи нет но код ща напишу!

Ответить

Номер ответа: 8
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #8 Добавлено: 08.11.03 19:23

Брось на форму таймер с интервалом 50 вставь код запусти программу, кликни на адрес и нажми F2 по идеи всё должно работать, хорошо было бы если ты Html код кинул!

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

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

Private Const WM_SETFOCUS As Long = &H7

Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer

Sub item(item1 As String, item2 As String, item3 As String, item4 As String, item5 As String)

hWnd2 = FindWindow("IEFrame", vbNullString) 'Или hWnd2 = FindWindow( vbNullString,name) - где name заголовок окна

hWnd2 = FindWindowEx(hWnd2, 0, "WorkerW", vbNullString)

hWnd2 = FindWindowEx(hWnd2, 0, "ReBarWindow32", vbNullString)

hWnd2 = FindWindowEx(hWnd2, 0, "ComboBoxEx32", vbNullString)

hWnd2 = FindWindowEx(hWnd2, 0, "ComboBox", vbNullString)

hWnd2 = FindWindowEx(hWnd2, 0, "Edit", vbNullString)

SendMessage hWnd2, WM_SETFOCUS, 0, 0

SendKeys "{TAB}"

SendKeys item1

SendKeys "{TAB}"

SendKeys item2

SendKeys "{TAB}"

SendKeys item3

SendKeys "{TAB}"

SendKeys item4

SendKeys "{TAB}"

SendKeys item5

'Если надо нажать на кнопку то сними коментарии

'SendKeys "{TAB}"

'SendKeys "{Enter}"

End Sub

Private Sub Timer1_Timer()

If GetAsyncKeyState(vbKeyF2) Then item "VB", "VisualBasic", "MS VB", "vb - cool!", "Yo!"

End Sub

Ответить

Номер ответа: 9
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #9
Добавлено: 08.11.03 20:49

БОЛЬШОЕ СПАСИБО!

Ответить

Номер ответа: 10
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #10 Добавлено: 08.11.03 20:59

Чё типа всё работает?

Ответить

Номер ответа: 11
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #11
Добавлено: 08.11.03 21:01

Проверю щас :)

Ответить

Номер ответа: 12
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #12 Добавлено: 08.11.03 21:20

напиши результат

Ответить

Номер ответа: 13
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #13
Добавлено: 08.11.03 23:17

ИДЕАЛЬНО! ТЫ - ГЕНИЙ!

Ответить

Номер ответа: 14
Автор ответа:
 xakep^8



Вопросов: 1
Ответов: 14
 Профиль | | #14 Добавлено: 08.11.03 23:25

Ok,рад помочь

Ответить

Страница: 1 |

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



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