Имитация нажатия по клавиатуре

Обсуждение рекламы сайтов в серфинге и заработка кредитов в серфинге
kadrle
Сообщения: 5
Зарегистрирован: 09 ноя 2016, 20:51

Имитация нажатия по клавиатуре

Непрочитанное сообщение kadrle »

Друзья, помогите разобраться с кодам.
Нужно имитировать нажатие по клавиатуре - на подобие click

Например, чтобы имитировать нажатие на клавишу "D" нужно:
1)Отправить событие keydown D
2)Отправить событие keypress D
3)Отправить событие keyup D


Я пробовал так писать:

var cmdname="event"; //команда отправить событие
var cmdtime=1;//выполнение 1 секунда.
var cmdparam="keydown.'D'.charCodeAt (0)"; //??? не знаю что написать
alert("prs::" + prskey + "::add::cmdname::cmdtime::cmdparam");

var cmdname="event"; //команда отправить событие
var cmdtime=1;//выполнение 1 секунда.
var cmdparam="keydpress.'D'.charCodeAt (0)"; //??? не знаю что написать
alert("prs::" + prskey + "::add::cmdname::cmdtime::cmdparam");

var cmdname="event"; //команда отправить событие
var cmdtime=1;//выполнение 1 секунда.
var cmdparam="keyup.'D'.charCodeAt (0)"; //??? не знаю что написать
alert("prs::" + prskey + "::add::cmdname::cmdtime::cmdparam");

Погуглив видел такой код javascript. Но мне не нужно указывать объект, куда вставлять, а просто имитация нажатия по клавиатуре:

<body>
<input id="tst" autocomplete="off">

<script>
onload = function ()
{
var evnt = document.createEvent ('KeyboardEvent');
var cd = 'D'.charCodeAt (0);
var obj = document.getElementById ('tst');
obj.focus ();

evnt.initKeyEvent ('keydown', 1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt);
evnt.initKeyEvent ('keypress', 1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt);
evnt.initKeyEvent ('keyup', 1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt);
}
</script>
</body>



Какой cmdparam - тут можно ?

Аватара пользователя
loller5
Сообщения: 2549
Зарегистрирован: 28 ноя 2010, 01:32
Откуда: Из гнезда.

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение loller5 »

Пример через jQuery.
Для теста использовал:
http://www.asquare.net/javascript/tests/KeyCode.html

Вставить скрипт 10с

Код: Выделить всё

function addScript(url,callback){var s=document.createElement('script');s.type='text/javascript';document.getElementsByTagName('head')[0].appendChild(s);s.src=url;s.onload=callback;}addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',function(){});
Вставить скрипт одной строкой:

Код: Выделить всё

var event = jQuery.Event('keypress');
event.which = 49; 
event.charCode = 49; 
event.keyCode = 49;
jQuery('#input').trigger(event); 

kadrle
Сообщения: 5
Зарегистрирован: 09 ноя 2016, 20:51

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение kadrle »

Спасибо за ответ, но там только в индикаторах появляются данные '49', а в самом окне не появляется значение '1'?
А как имитировать нажатие клавиши на клавиатуре? Например - вконтакте набрать логин и пароль?

Аватара пользователя
loller5
Сообщения: 2549
Зарегистрирован: 28 ноя 2010, 01:32
Откуда: Из гнезда.

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение loller5 »

kadrle писал(а):Спасибо за ответ, но там только в индикаторах появляются данные '49', а в самом окне не появляется значение '1'?
А как имитировать нажатие клавиши на клавиатуре? Например - вконтакте набрать логин и пароль?
Вы пишите по конкретной ситуации. Можно даже по ссылке Live-чат консультанта. Объясню на конкретных примерах с примерами кода.

kadrle
Сообщения: 5
Зарегистрирован: 09 ноя 2016, 20:51

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение kadrle »

Я сделал так:

Адрес сайта: http://www.asquare.net/javascript/tests/KeyCode.html

Время показа: 30-30 сек.

10сек : Вставить скрипт: function addScript(url,callback){var s=document.createElement('script');s.type='text/javascript';document.getElementsByTagName('head')[0].appendChild(s);s.src=url;s.onload=callback;}addScript('http://ajax.googleapis.com/ajax/libs/jq ... ',function(){});

1 сек : Вставить скрипт: var event = jQuery.Event('keydown'); event.which = 49; event.charCode = 0; event.keyCode = 49; jQuery('#input').trigger(event);

1 сек : Вставить скрипт: var event = jQuery.Event('keypress'); event.which = 49; event.charCode = 49; event.keyCode = 0; jQuery('#input').trigger(event);

1 сек : Вставить скрипт: var event = jQuery.Event('keyup'); event.which = 49; event.charCode = 0; event.keyCode = 49; jQuery('#input').trigger(event);

15сек : Поиск ссылки : last;0

Изображение

По идее в INPUTE должно было появиться "1", т.к. при нажатии "1" - возникают соответствующие коды.
Но цифра 1 не появляется.
Изображение

И кстати, почему через файл java script не работает?

var cmdname="script";
var cmdtime=10;
var cmdparam="function addScript(url,callback){var s=document.createElement('script');s.type='text/javascript';document.getElementsByTagName('head')[0].appendChild(s);s.src=url;s.onload=callback;}addScript('http://ajax.googleapis.com/ajax/libs/jq ... ',function(){});";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

var cmdname="script";
var cmdtime=1;
var cmdparam="var event = jQuery.Event('keydown'); event.which = 49; event.charCode = 0; event.keyCode = 49; jQuery('#input').trigger(event);";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

var cmdname="script";
var cmdtime=1;
var cmdparam="var event = jQuery.Event('keypress'); event.which = 49; event.charCode = 49; event.keyCode = 0; jQuery('#input').trigger(event);";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

var cmdname="script";
var cmdtime=1;
var cmdparam="var event = jQuery.Event('keyup'); event.which = 49; event.charCode = 0; event.keyCode = 49; jQuery('#input').trigger(event);";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

var cmdname="link";
var cmdtime=15;
var cmdparam="last;0";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

kadrle
Сообщения: 5
Зарегистрирован: 09 ноя 2016, 20:51

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение kadrle »

Изображение

Здравствуйте. На самом деле у меня такая вот проблема, я не могу набирать логин и пароли вконтакте. Клики работают, а вот действия клавиатуры - нет. Изучая код - я понял что там следят за OnKeyUp.
Другой системой скриптов - все работает - набирает.
А вот javascript jetswap - не получается. Я заскринил часть кода другой системы. Еще в Dos программах QBasic - можно было смещать машинные кода Peek Poke -
как это реализовать здесь - желательно на стороннем файле?

Аватара пользователя
loller5
Сообщения: 2549
Зарегистрирован: 28 ноя 2010, 01:32
Откуда: Из гнезда.

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение loller5 »

Код: Выделить всё

Вставить скрипт 5с:
$('#index_email').value = 'test@mail.ru'; $('#index_pass').value = 'test@mail.ru';

Отправить событие 30с:
button;id;index_login_button;click;0

kadrle
Сообщения: 5
Зарегистрирован: 09 ноя 2016, 20:51

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение kadrle »

К сожалению не получилось.
Да, я настроил так, как вы написали.
Изображение
Но у меня выдалась ошибка. Видимо у них иные операторы javascript.
Да и #index_email - временами у них разный. Но тем не менее, движение и клик мышки там работает.
Осталось симулировать имитацию нажатия клавиш - keydown a; keyup a;
Это и надежнее и точно работает, проверял в другой системе.
Только как здесь прописать?

12.11.2016 10:32:13 Ошибка JavaScript: вкладка 1; номер ошибки 0; файл about:blank; строка 0; символ 0; ошибка NS_ERROR_NOT_AVAILABLE:
12.11.2016 10:32:14 Переход: http://vk.com
12.11.2016 10:32:16 Ошибка JavaScript: вкладка 1; номер ошибки 1; файл https://vk.com/js/lib/ui_controls.js?3165552795; строка 3; символ 0; ошибка jsDispatcher is not defined
12.11.2016 10:32:19 Ошибка JavaScript: вкладка 1; номер ошибки 228; файл https://connect.facebook.net/en_US/all.js; строка 31; символ 0; ошибка JSON.parse: bad control character in string literal at line 1 column 2 of the JSON data
12.11.2016 10:32:19 Ошибка JavaScript: вкладка 1; номер ошибки 228; файл https://connect.facebook.net/en_US/all.js; строка 31; символ 0; ошибка JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 2 of the JSON data
12.11.2016 10:34:05 Команда 1: Вставка JavaScript. Скрипт alert("prs::" + prskey + "::agent::Opera/9.80 (Windows NT 6.1; WOW64; MRA 8.2 (build 2201)) Presto/2.12.328 Version/13.12);
12.11.2016 10:34:05 Ошибка JavaScript: вкладка 1; номер ошибки 138; файл https://vk.com/; строка 0; символ 25; ошибка SyntaxError: unterminated string literal
12.11.2016 10:34:05 Команда 2: Вставка JavaScript. Скрипт $('#index_email').value = 'loginus@yandex.ru'; $('#index_pass').value = 'passwordus';
12.11.2016 10:34:05 Ошибка JavaScript: вкладка 1; номер ошибки 1; файл https://vk.com/; строка 0; символ 0; ошибка $ is not defined
12.11.2016 10:34:05 Ошибка JavaScript: вкладка 1; номер ошибки 1; файл https://vk.com/; строка 0; символ 0; ошибка ReferenceError: $ is not defined

Аватара пользователя
PsyVorteX91
Сообщения: 86
Зарегистрирован: 06 янв 2012, 01:32
Откуда: Крым
Контактная информация:

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение PsyVorteX91 »

kadrle писал(а):Спасибо за ответ, но там только в индикаторах появляются данные '49', а в самом окне не появляется значение '1'?
А как имитировать нажатие клавиши на клавиатуре? Например - вконтакте набрать логин и пароль?
Отправка событий с методами keypress, keydown, keyup выполняет ровно программное предназначение и не означает что будут выполнены фактические действия! Только при условии наличия обработчика данного события на выбранном элементе в структуре HTML выполнятся действия согласно записанной функции!
Другими словами - отследить событие можно, но фактически внести коррективы то есть лицезреть как кнопка на клавиатуре проседает и магическим образом в поле появляется "буква\символ\цифра" нельзя из-за политики безопасности!
Поэтому при реализации банально записываются данные в структуру HTML . На JQ например: $('#ID').val('значение'); - запись значения в поле с указанным ID.
И как следствие ввести скажем так "побуквенно" возможно , но реализация будет совершенно другой.
Как пример.. C использованием интервала , счётчика и добавления, в каждой итерации, в значение атрибута value (букву\цифру\символ) длинной в единицу.

Аватара пользователя
loller5
Сообщения: 2549
Зарегистрирован: 28 ноя 2010, 01:32
Откуда: Из гнезда.

Re: Имитация нажатия по клавиатуре

Непрочитанное сообщение loller5 »

PsyVorteX91, забыл указать про триггер, который нужен порой. change, keydown или какой-либо еще (:

Ответить