Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Копир. из буфера обмена в поле логин в браузе IE |
Автор: mapple 21.7.2008, 10:39 |
Собственно проблема в следующем, создаю форму со своими задачами, после определенных действий, копирую введенное слово у себя в буфер обмена: {используем библиотеку clipbrd, пишу на Borland® Delphi® for Microsoft® Windows™ Version 10.0.2151.25345 - вобщем на 7} clipboard.clear; // очищаем буфер обмена clipboard.astext:='пример'; // копируем в буфер введенное слово, в нашем случае 'пример' далее программным путем позиционируют курсор мыши на поле Логин в IE (Internet Explorer), имитируют клик левой кнопки мыши над полем, поле становится активным для ввода, далее необходимо инициализировать вставку текста из буфера, вот тут я и встретил проблемму, у себя в окне прогрммы я вывожу в окно memo содержимое буфера и все вижу memo1.text:=clipboard.astext; но вот как вывести в поле логина в IE, не понимаю, если кто-то знает и сталкивался с этой "проблемой", напишите как вы решали эту задачу, спасибо за ранее (страница в IE в формате HTML и поле логина имеет вид INPUT size=18 name=user_prog, это на всякий случай) ![]() |
Автор: mapple 21.7.2008, 18:07 |
Собственно я уже сам все сделал, выкладываю часть кода, может пригодится кому: clipboard.AsText:='Тест'; // помещаем в буфер обмена слово "Тест" SetCursorPos(Log.X,Log.Y); // Позиционируем курсор мыши в заданные координаты mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); // имитируем нажатие левой кнопки мыши mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); keybd_event(VK_CONTROL, 0, 0, 0); // имитируем нажатие Ctrl+V keybd_event(Ord('V'), 0, 0, 0); keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); вот и все , кому интересно, пишите, я отвечу, просто изначально неправильно сымитировал нажатие кнопки мыши и поэтому начал искать как быть, а надо было проверить 3 и 4 строчки, у меня они с ошибкой были написаны |