![]() |
Запоминать последовательность нажатия определенных клавиш
Доброго времени суток. Подскажите. как можно сделать чтобы AutoIT отслеживал последовательность некоторых клавиш.
Поясню детально: Есть программа для тестирования написанная на AutoIT (как будто нельзя было её на delphi написать =( ) Программа выводит вопрос и несколько вариантов ответа, казалось бы сиди и отвечай, но она блокирует мышь и почти всю клавиатуру оставляя в рабочем состоянии только 4 клавиши - цифры от 1 до 4 Я сам код не видел, потому-что у меня задание написать под эту прогу функцию, которая бы просто запоминала в какой последовательности пользователь нажимал эти клавиши Я пробовал делать через _IsPressed Т.е. в цикле вертится select с 4ми вариантами и если какой-то вариант появился то он записывается в файл Но AutoIT выдал несколько интересных сюрпризов: 1. Записывалась только первая нажатая кнопка, а дальше ничего больше не писалось, хотя функция продолжала работать 2. Запоминалась первая нажатая кнопка и дублировалась столько раз, сколько кнопок было нажато. 3. Записывалась каждая кнопка но вводилась в файл несколько раз подряд - если бы хотя бы количество повторений было одинаковое можно было бы отфильтровать, но оно всегда разное. Помогите разобраться. |
Цитата:
http://www.autoitscript.com/autoit3/..._IsPressed.htm (по-английски) http://autoit-script.ru/autoit3_docs..._ispressed.htm (по-русски) Цитата:
|
Попахивает Keylogger'ом, для отслежки ввода паролей...
Цитата:
|
Creat0R, спокойнее, всё очень просто, есть готовый тестер, у которого куча заморочек, именно поэтому мне и не показывают весь код целиком, чтобы я не смог обойти их блокировку клавиатуры и подсказать студентам как параллельно с тестером запускать блокнот с ответами. Так что вполне понятно почему этот препод усиленно старается не показывать мне код. =)
|
Цитата:
Цитата:
Код:
#include "IsPressedEx.au3" Цитата:
|
Если убрать msgbox, то Ваш вариант тоже записывает каждое нажатие несколько раз.
А там немного другая система, справой стороны ведётся лог вопрос-ответ и статистика правильных ответов Как сделать чтобы без MsgBox всё корректно работало? Я сейчас на работе, а скрипт на домашнем компе, в общем логика там была примерно такая если нажата 31 открыть DLL открыть файл записать туда А закрыть файл закрыть DLL и так на каждую из 8и клавиш, потому-что как выяснилось, например 1 и Numpad1 имеют разные коды |
McLotos, прислушайтесь к совету:
Цитата:
|
Код:
#include <Misc.au3> и он мне в файл записал ABCCCDDDAAABBCCCCDDD может так в самом autoit стоит какое-то ограничение, или он просто не успевает стирать из памяти букву и вводит её повторно? Может тогда логичнее делать через массив, а после завершения (кнопка Посчитать) уже весь массив выдавать пользователю и записывать в файл? Тогда получается что эта штука, которая справа выводит номер вопроса-вариант ответа она работать не будет =( |
Цитата:
Код:
#include "IsPressedEx.au3" Цитата:
|
Цитата:
Блин, спасибо, как всегда выручил! |
|
Время: 03:26. |
Время: 03:26.
© OSzone.net 2001-