Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 08.01.2015
Сообщений: 59

Автоматизация заполнения формы на сайте путем вставки текста из буфера обмена

21.09.2023, 19:51. Показов 1979. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий модератора 
Вынесено из темы Вставка текста из буфера обмена

Дело в том, что мне нужно иногда заполнять форму в интернете, ну там фамилия, имя, отчество и т.д. Данные есть в файле тхт. Я выделяю строку в файле например фамилия нажимаю Ctrl+C -записываю в буфер обмена, открываю страницу перехожу на нужную запись (поле) нажимаю Ctrl+V и так для всех полей - долго и нудно. как это автоматизировать желательно в VB6 Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2023, 19:51
Ответы с готовыми решениями:

Изменить код для вставки текста из буфера обмена
День добрый! Не знаю ни один из этих языков, а powershell есть не у всех (win XP), хотелось бы вставку из буфера на powershell: ...

API-функция для вставки текста из буфера обмена
Привет) Нужно реализовать копирование значение textBox1.Text в буфер и после програмно вставить его... Запись в буфер сделал через...

Отслеживание вставки из буфера обмена
Необходимо отследить, а точнее перехватить вставку из буфера обмена. Я сделал хук вида WH_CALLWNDPROC для перехвата сообщения WM_PASTE....

22
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
21.09.2023, 20:04
Евгений_П, я не думаю что тут нужен буфер обмена. Возможно достаточно отправить форму на сайт через http. Надеюсь вам тут подскажут как именно это можно сделать на VB6.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
21.09.2023, 20:36
Самый простой способ это послать POST-запрос через AJAX на джаваскрипте накидав код.

Добавлено через 8 минут
Можно кстати ещё использовать SendKeys "Текст будет напечатан в вашем окне" вместо вставки из буфера.
0
sleep
 Аватар для I can
4914 / 4556 / 837
Регистрация: 13.04.2015
Сообщений: 9,679
21.09.2023, 20:43
Цитата Сообщение от Евгений_П Посмотреть сообщение
заполнять форму в интернете
Это можно и без буфера сделать.
Цитата Сообщение от HackerVlad Посмотреть сообщение
использовать SendKeys
И без SendKeys-а.

Добавлено через 4 минуты
Через WebBrowser вставить. Вот первое, что нашел, но направление, надеюсь, понятно: Нажать кнопку на форме HTML через WebBrowser
1
1 / 1 / 0
Регистрация: 08.01.2015
Сообщений: 59
22.09.2023, 15:02  [ТС]
OwenGlendower, сначала, спасибо, что навели порядок и открыли за меня новую тему. На одном из сайте, я делал так, но здесь каждое поле не имеет имени, а в виде, я думаю, яваскрипта или еще какой программы. А вот через буфер в ручную получается. Вот хотелось бы автоматизировать.
I can, в вашем примере поле имеет имя - HIE.Name, я такое уже делал. А вот через SendKeys Ctrl+C, Ctrl+V, TAB было бы здорово, хоть и не так красиво. Я не соображу как передавать фокус на текстовый файл - выделить нужную строку, нажать - Ctrl+C. Затем фокус на форму в интернете, по ТАВ выйти на нужное поле и далее Ctrl+V и так до конца. Я понимаю, что это не красиво, но форма не большая до 20 полей, время займет не много. Что касается проверки перехода, я посчитал количество ТАВ между полями, т.е. можно просто механически - нажать, скажем два раза ТАВ - т.е. ТАВ, ТАВ. Спасибо.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
22.09.2023, 15:40
Цитата Сообщение от Евгений_П Посмотреть сообщение
На одном из сайте, я делал так, но здесь каждое поле не имеет имени
На уровне http запроса имена наверняка есть. О каком сайте идет речь, если не секрет?
0
sleep
 Аватар для I can
4914 / 4556 / 837
Регистрация: 13.04.2015
Сообщений: 9,679
22.09.2023, 16:03
Цитата Сообщение от Евгений_П Посмотреть сообщение
в вашем примере поле имеет имя - HIE.Name, я такое уже делал.
И что? Не получилось? Надеюсь не с этим именем делали?
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
22.09.2023, 17:22
I can, )))
0
1 / 1 / 0
Регистрация: 08.01.2015
Сообщений: 59
22.09.2023, 22:15  [ТС]
OwenGlendower, в любом браузере можно посмотреть исходный код, там где есть Имя поля там видно и его название, а тут нет. Что касается конкретно сайта, то не хотел бы называть его. А что без этого нельзя подсказать!? Я не хочу что-то ломать, я хочу только облегчить людям, чтобы они не набирали второй раз одну и туже информацию.
I can, я конечно не большой специалист по программированию, я радиоинженер, хотя сейчас очень тяжело определить четкую границу, поэтому очень давно, еще во времена Z80 (ассемблер и Бейсик) стал заниматься компьютерами, правда несколько не последовательно, так к сожалению Делфи так и не осилил (а может быть и к счастью) писал на Access с VBA. Это я к чему, сейчас в чистых программистах потребность мала, так если вы не занимались схемотехникой, то думаю, что не отличите прямой транзистор от обратного (хотя сейчас кому это нужно - плату достал, новую поставил, а старую можно и как подставку под сковородку, кастрюлю использовать, а я в свое время - когда были еще 286, 386 ремонтировал, почему-то много выходило из строя коаксиальные сетевые платы - думаю что гроза однако) Опять это я к чему - смеяться надо мной можно, но здесь мы собрались не для этого, а помогать друг другу (хотя с меня помощи мало будет). Так что если есть что сказать, пишите, а так ... я сюда пришел для ускорения процесса, я и без вас решу задачу, правда дольше, у меня еще не было, чтобы я не справился. Извините за брюзжание.
1
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
22.09.2023, 22:38
Евгений_П, в чем у Вас страница открыта?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
22.09.2023, 22:43
Цитата Сообщение от Евгений_П Посмотреть сообщение
в любом браузере можно посмотреть исходный код, там где есть Имя поля там видно и его название, а тут нет.
Значит следует посмотреть запрос который отправляет браузер.

Цитата Сообщение от Евгений_П Посмотреть сообщение
Что касается конкретно сайта, то не хотел бы называть его. А что без этого нельзя подсказать!?
Можно и без него, но зная сайт было бы проще помочь.

Цитата Сообщение от Евгений_П Посмотреть сообщение
Я не хочу что-то ломать
Никто вас в подобном и не обвинял. И врядли даже подозревал.
0
sleep
 Аватар для I can
4914 / 4556 / 837
Регистрация: 13.04.2015
Сообщений: 9,679
22.09.2023, 22:46

Не по теме:

Цитата Сообщение от Евгений_П Посмотреть сообщение
не отличите прямой транзистор от обратного
Отличу, ничего сложного в этом нет. Но к чему это сейчас?


Цитата Сообщение от Евгений_П Посмотреть сообщение
Что касается конкретно сайта, то не хотел бы называть его
Тогда остаётся пожелать удачи.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
23.09.2023, 15:03
Сейчас некоторые сайты делают защиту от роботов. Даже если на сайте подключен клаудфларе, то уже это не сработает, так как автоматический запрос покажется подозрительным.

Добавлено через 6 минут
Я кстати писал уже программу, которая загружает TXT файл и дальше по строчно от туда считывая записывает в буфер обмена строчку, каждый раз как пользователь нажимает Ctrl+V. Я буквально за пол часа-час накидал для себя такую программку. Не понимаю, что тут сложного.

Добавлено через 1 минуту
Да и потом если вставлять через буфер то нужно будет правда хоть и самому выделять фокус в текстовых полях но зато не будут страшны защиты от роботов и автоматических запросов. Вдруг на сайте клаудфларе например. Так ещё и каптчу заставило бы вводить ну.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
23.09.2023, 16:13
Вот решение:

Я эту программу уже давно для себя написал. Смысл этой программы в том, что она считывает текстовый файл с записями полей для автовставки. И всякий раз когда нажимает пользователь Ctrl+V то в буфер копируется новый текст. Как в моём примере это сначала "Иванов" потом "Иван", потом "Иванович" и так далее. Единственное что нужно, это самому выделять необходимое текстовое поле, а потом наживать Ctrl+V. Но зато это уже наполовину автоматизирует Вашу задачу, хоть и не целиком.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Option Explicit
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
 
Dim ArrayEmails() As String
Dim Counter As Long
 
Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type
 
Private Function ShowOpen() As String
    Dim OFName As OPENFILENAME
    
    'Set the structure size
    OFName.lStructSize = Len(OFName)
    'Set the owner window
    OFName.hwndOwner = Me.hWnd
    'Set the application's instance
    OFName.hInstance = App.hInstance
    'Set the filet
    OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
    'Create a buffer
    OFName.lpstrFile = Space$(254)
    'Set the maximum number of chars
    OFName.nMaxFile = 255
    'Create a buffer
    OFName.lpstrFileTitle = Space$(254)
    'Set the maximum number of chars
    OFName.nMaxFileTitle = 255
    'Set the initial directory
    OFName.lpstrInitialDir = "C:\"
    'Set the dialog title
    OFName.lpstrTitle = "Open File - KPD-Team 1998"
    'no extra flags
    OFName.flags = 0
 
    'Show the 'Open File'-dialog
    If GetOpenFileName(OFName) Then
        ShowOpen = Trim$(OFName.lpstrFile)
    Else
        ShowOpen = ""
    End If
End Function
 
Private Sub Command1_Click()
    Text1.Text = ShowOpen
End Sub
 
Private Sub Command2_Click()
    Dim newCounter As String
    Dim PutSetText As String
    
    If LoadFile(Text1.Text, ArrayEmails) = True Then
        newCounter = GetPrivateINIString(Text1.Text, "Counter")
        If newCounter <> vbNullString Then
            Counter = newCounter
            PutSetText = ArrayEmails(Counter)
        Else
            PutSetText = ArrayEmails(0)
        End If
        
        With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
           .SetText PutSetText
           .PutInClipboard
        End With
        
        Timer1.Enabled = True
        Text1.Locked = True
        Print "Начат процесс..."
        Me.Caption = "Позиция " & Counter
    Else
        Beep
    End If
End Sub
 
Private Sub Form_Load()
    Text1.Text = App.Path & "\" & App.EXEName & ".txt"
End Sub
 
Private Sub Timer1_Timer()
    On Error GoTo Handler
    
    If Timer2.Enabled = False Then
        If GetAsyncKeyState(17) And GetAsyncKeyState(86) Then
            Timer2.Enabled = True
            
            If (Counter + 1) <= UBound(ArrayEmails) Then
                With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
                   .SetText ArrayEmails(Counter + 1)
                   .PutInClipboard
                End With
                
                Counter = Counter + 1
                
                Me.Caption = "Позиция " & Counter
                WritePrivateINIString Text1.Text, "Counter", CStr(Counter)
                WritePrivateINIString Text1.Text, "Position", ArrayEmails(Counter)
            Else
                Counter = -1 ' Начать всё сначала по второму кругу
                With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
                   .SetText ArrayEmails(Counter + 1)
                   .PutInClipboard
                End With
                
                Me.Caption = "Позиция 0"
                WritePrivateINIString Text1.Text, "Counter", "0"
                WritePrivateINIString Text1.Text, "Position", ArrayEmails(0)
            End If
        End If
    End If
 
Handler:
End Sub
 
Private Sub Timer2_Timer()
    Timer2.Enabled = False
End Sub
Вложения
Тип файла: zip PutInClipboardFromTextFile.zip (14.8 Кб, 10 просмотров)
1
sleep
 Аватар для I can
4914 / 4556 / 837
Регистрация: 13.04.2015
Сообщений: 9,679
23.09.2023, 16:19
Цитата Сообщение от HackerVlad Посмотреть сообщение
самому выделять необходимое текстовое поле
Он по Tab переходит, так что всё еще проще.
Цитата Сообщение от Евгений_П Посмотреть сообщение
я посчитал количество ТАВ между полями, т.е. можно просто механически - нажать, скажем два раза ТАВ - т.е. ТАВ, ТАВ.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
23.09.2023, 17:07
Я просто скинул программу, которая у меня уже была написано (человеку просто повезло скажем) а про TAB сам напишет как ему надо, переделав мой проект.

Добавлено через 1 минуту
Visual Basic
1
SendKeys "{Tab}"
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
24.09.2023, 16:25
Евгений_П, вам понравилась моя программа?
0
1 / 1 / 0
Регистрация: 08.01.2015
Сообщений: 59
24.09.2023, 23:52  [ТС]
HackerVlad, спасибо за помощь. Такой способ чтения и записи в буфер я раньше видел, но потом потерял, вы облегчили мне поиск. Писать в Буфер получилось. Правда перед каждой записью я очищаю буфер. Программа Clipdiary показывает историю, но я стер, записал и прочитал, проверил что записано именно то что нужно, а Clipdiary показывает что эта запись, скажем шестая. А вот как дальше записать в поле на интернет странице!? надо задать фокус страницы и первого поля на ней и дальше можно применить чтение из буфера примерно вот так
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.GetFromClipboard
ClipboardText = .GetText
но запишется в переменную, а мне надо в поле выбранное по ТАВ. Что касается выделять в ручную и потом передавать то это мы и сейчас делаем, только это долго. Меня раздражает имея компьютер мы одну и туже информацию переписываем несколько раз в разных программах. С нашими программами я решил вопросы, а вот со страницей в нете пока не могу, не соображу как программно задать фокус на поле и нажать Ctrl+V что бы записалось не в переменную, в поле. Спасибо
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
25.09.2023, 09:27
Цитата Сообщение от Евгений_П Посмотреть сообщение
не соображу как программно задать фокус на поле и нажать Ctrl+V
SendKeys пробовали?
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
25.09.2023, 10:12
Вообще есть прога KeePass с помощью нее можно вводить данные автоматом. Там эмулируются tab, вставка и др. Там можно назадавать полей прописать для них простой скриптик и она будет их все вводить
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2023, 10:12
Помогаю со студенческими работами здесь

Форматирование вставки с буфера обмена
Не пинайте сильно за простой вопрос, но как сделать, чтобы автоматом информация с буфера обмена вставлялась с форматированием листа, без...

Отлавливание вставки из буфера обмена
Необходимо отлавливать вставку из буфера обмена (в любое место). Желательно, чтобы отлов происходил до самой вставки, т.е. в следующем...

Завершение вставки из буфера обмена в ListObject
Имеем: ListObject на листе и кнопку на панели действий для сохранения таблицы на SQL Server. Последовательность действий 1: Вставляем на...

Выполнение вставки из буфера обмена в произвольное активное окно
Здравствуйте товарищи! Подскажите как возможно реализовать вставку информации из буфера обмена в любое активное окно? Т.е. без привязки...

Автоматизация заполнения формы договора
Приветствую. Подскажите пожалуйста способ решения следующей задачи. Есть шаблон (форма) договора в Word. А также база данных по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru