РАЗРАБОТКА УТИЛИТЫ ЭМУЛИРУЮЩЕЙ ФУНКЦИОНАЛ МЫШИ И КЛАВИАТУРЫ

Манойленко Иван Георгиевич1, Кардаш Анна Сергеевна2, Баженов Руслан Иванович3
1Приамурский государственный университет имени Шолом-Алейхема, магистрант
2Приамурский государственный университет имени Шолом-Алейхема, студент
3Приамурский государственный университет имени Шолом-Алейхема, кандидат педагогических наук, доцент, заведующий кафедрой информатики и вычислительной техники

Аннотация
В рамках данной статьи рассматривается утилита, обладающая простейшим набором команд для эмуляции перемещения курсора мыши по рабочему столу, нажатии левой кнопки мыши и эмулирование нажатий клавиш клавиатуры. Утилита позволяет создать небольшой скрипт, исполнимый при нажатии на заранее заданную клавишу клавиатуры.

Ключевые слова: эмулятор мыши, эмулятор нажатия клавиш клавиатуры


DEVELOPMENT OF FUNCTIONAL UTILITY EMULATES A MOUSE AND KEYBOARD

Manoilenko Ivan Georgievich1, Kardash Anna Sergeevna2, Bazhenov Ruslan Ivanovich3
1Sholom-Aleichem Priamursky State University, undergraduate
2Sholom-Aleichem Priamursky State University, student
3Sholom-Aleichem Priamursky State University, candidate of pedagogical sciences, associate professor, Head of the Department of Computer Science

Abstract
As part of this article examines the utility has a simple set of commands to emulate the mouse cursor on the desktop, press the left mouse button emulation and keyboard keystrokes. The utility allows you to create a small script executable by pressing a predetermined key on the keyboard.

Keywords: emulator keystrokes, emulator mouse


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Манойленко И.Г., Кардаш А.С., Баженов Р.И. Разработка утилиты эмулирующей функционал мыши и клавиатуры // Современные научные исследования и инновации. 2015. № 2. Ч. 2 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2015/02/47073 (дата обращения: 19.04.2024).

Сегодня сильно развивается отрасль web-разработки и, в частности последние годы, стало появляться множество web- и flash- игр. В некоторых из них используется сложное управление, требующее несколько манипуляций мышкой или клавиатурой, а может и тем и другим. В таких играх доли секунды могут решить исход всей игры.

Для повышения скорости манипуляций пользователя была разработана утилита (рис.1) с набором команд [1-3]:

  • Start>[Буква клавиши по нажатию на которую происходит выполнение скрипта];
  • XX>[число определяющее положение курсора относительно левой границы экрана];
  • YY>[число определяющее положение курсора относительно правой границы экрана];
  • KeyClick>[буква которая будет нажата];
  • Time>[число определяющее паузу до следующей команды в милисекундах];
  • Stop>[Буква клавиши по нажатию на которую происходит выполнение скрипта].

Рисунок 1- Окно утилиты

Приведем пример реализации модуля обработки команд.

var

x,y: word;

i,k,kkk,po:integer; //Вспомогательная переменная для цикла

s,f:string;

ppp:byte;

RUS: HKL;

begin

po:=0;

if PopupMenu2.Checked  then

begin

Skript.Lines.LoadFromFile(‘C:Skript.datas’);

if Skript.Lines.Count>1 then

begin

s:=Skript.Lines[0];

for i:=1 to Length(s) do

if (getasynckeystate( ord(s[i]))<>0) then

for k:=1 to Skript.Lines.Count do

begin

if Skript.Lines[k] = ‘Start>’+s[i] then

begin

po:=11;

Break;

end;

end;

if po=11then

for k:=k to Skript.Lines.Count do

begin

po:=0;

if (Skript.Lines[k] <> ‘Stop>’+s[i])or(pos(s[i],Nab)=0) then

begin

if pos(‘Time>’,Skript.Lines[k])>0 then

begin

sleep(StrToInt(Copy(Skript.Lines[k],6,Length(Skript.Lines[k])-5)));

end;

if (Pos(‘XX>’,Skript.Lines[k])>0)and(Pos(‘YY>’,Skript.Lines[k+1])>0) then

begin

x:=  StrToInt(Copy(Skript.Lines[k],4,Length(Skript.Lines[k])-3));

y:=  StrToInt(Copy(Skript.Lines[k+1],4,Length(Skript.Lines[k+1])-3));

x := Round(x * (65535 / Screen.Width));

y := Round(y * (65535 / Screen.Height));

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, x, y, 0, 0);

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, x, y, 0, 0);

end;

if (Pos(‘KeyClick>’,Skript.Lines[k])>0) then

begin

f:=Skript.Lines[k];

kkk:=pos(f[length(f)],Alf)+64;

ppp:=kkk;

SetKbdLayout(ENGLISH);

SetLayoutActiveWnd(ENGLISH);

keybd_event(ppp, MapVirtualKey(ppp, 0), 0, 0);

keybd_event(ppp, MapVirtualKey(ppp, 0), KEYEVENTF_KEYUP, 0);

Application.ProcessMessages;

end;

end;

if Skript.Lines[k]=’Stop>’+s[i] then

begin

break;

end;

end;

off:=1;

end;

end;

Разработанная программа может быть использована как пример при изучении технологий программирования, или при самостоятельной проработке  материала по эмуляции клавиатуры и кликов мыши при разработке информационных систем [4, 5].


Библиографический список
  1. Имитация щелчка мыши в любом месте экрана. URL: http://delphiru.ru/winapi/191-simulationmouseclick
  2. Эмуляция нажатия клавиши 2. URL: http://delphidevelop.ru/publ/26-1-0-210
  3. Биддик М. Отслеживая каждый «клик» // Журнал сети и системы связи. 2008. №14. C.42-45.
  4. Баженов Р.И. Использование системы moodle для организации самостоятельной работы студентов // Журнал научных публикаций аспирантов и докторантов. 2014. № 3 (93). С. 174-175.
  5. Баженов Р.И. Об организации деловых игр в курсе «Управление проектами информационных систем» // Научный аспект. 2014. Т. 1. № 1. С. 101-102.


Количество просмотров публикации: Please wait

Все статьи автора «Баженов Руслан Иванович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация