library micro_com;
uses Windows, SysUtils;
//------------------------------------------------------------------------------
// Основное тело функции, идет на экспорт, вызывается из кликера
function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
pIntArr = array[0..0] of Integer;
var
DCB : TDCB;
hPort : THandle;
port_num : integer;
param : integer;
byete_res: Cardinal;
str : string;
len : integer;
begin
port_num := pIntArr(_mas^)[0];
param := pIntArr(_mas^)[_size-1];
// 1. Открываем файл
hPort := CreateFile(PChar('COM'+IntToStr(port_num)), GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
// 2. Контроль ошибок
if hPort = INVALID_HANDLE_VALUE then begin
// Обнаружена ошибка, порт открыть не удалось
result := 1;
exit;
end;
// 3. Чтение текущих настроек порта
if GetCommState(hPort, DCB) then ;
// 4. Настройки:
// Скорость обмена
DCB.BaudRate := 9600;
// Число бит на символ
DCB.ByteSize := 8;
// Стоп-биты
DCB.StopBits := 1;
// Четность
DCB.Parity := 0;
// Какая-то херь непонятная
DCB.Flags := 20625;
// 5. Передача настроек
if not SetCommState(hPort, DCB) then begin{ошибка настройки порта}
result := 2;
exit;
end;
// 6. Настройка буферов порта (очередей ввода и вывода)
if not SetupComm(hPort, 16, 16) then begin{ошибка настройки буферов}
result := 3;
exit;
end;
// 7. Сброс буферов и очередей
if PurgeComm(hPort, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or PURGE_RXCLEAR) then
// 8. Запись в порт
str := intToStr(param);
len := Length(str);
WriteFile(hPort, PChar(str)^, len*2, byete_res, nil);
// 9. Закрытие порта
CloseHandle(hPort);
result := 5;
end;
//------------------------------------------------------------------------------
// список экспорта
exports execute;
begin
end.
CALL ("micro_com.dll", $com, $val)
#include <Mouse.h>
#include <Keyboard.h>
unsigned long par = 0;
String instring = "";
int kmfunct = 0;
int x_cor = 0;
int y_cor = 0;
int mult = 0;
int inchar = 0;
void setup() {
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
void loop() {
while(Serial.available() > 0){
inchar = Serial.read();
if (isDigit(inchar)) {
instring += (char)inchar;
}
}
par = instring.toInt();
instring = "";
if (par > 0) {
kmfunct = par/16777216 ;
switch (kmfunct) {
case 1: //Mouse.click
Mouse.click(par - kmfunct*16777216);
break;
case 2: // Mouse.move
x_cor = (par - kmfunct*16777216)/256;
y_cor = par - x_cor*256 - kmfunct*16777216;
if (x_cor > 127) x_cor = 127 - x_cor;
if (y_cor > 127) y_cor = 127 - y_cor;
Mouse.move(x_cor, y_cor, 0);
break;
case 3: //Mouse.press
Mouse.press(par - kmfunct*16777216);
break;
case 4: //Mouse.release
Mouse.release(par - kmfunct*16777216);
break;
case 5: //Mouse.dblclick
Mouse.click(par - kmfunct*16777216);
delay(50);
Mouse.click(par - kmfunct*16777216);
break;
case 6: //wheel.down.up
mult = par - kmfunct*16777216;
if (mult > 127) mult = 127 - mult;
Mouse.move(0, 0, mult);
case 7: // Keyboard.keydown
Keyboard.press(par - kmfunct*16777216);
break;
case 8: // Keyboard.keyup
Keyboard.release(par - kmfunct*16777216);
break;
case 9: // Keyboard.keypress
Keyboard.write(par - kmfunct*16777216);
break;
}
}
par = 0;
}
$com = 5 //свой порт
//#name "Arduino_mouse&keyboard"
////////////////////////////////////////////////
// Все процедуры с мышью и клавиатурой через ардуино
//micro_move ($x_cor, $y_cor)
//micro_lclick ($x_cor, $y_cor)
//micro_rclick ($x_cor, $y_cor)
//micro_mclick ($x_cor, $y_cor)
//micro_ldown ($x_cor, $y_cor)
//micro_rdown ($x_cor, $y_cor)
//micro_mdown ($x_cor, $y_cor)
//micro_lup ($x_cor, $y_cor)
//micro_rup ($x_cor, $y_cor)
//micro_mup ($x_cor, $y_cor)
//micro_dblclick ($x_cor, $y_cor)
//micro_wheeldown ($mult)
//micro_wheelup ($mult)
// вместо $char_ASCII писать не код клавиши, а символ ASCII.
// в ардуино как-то тупо сделали клавиатурные нажатия :/
//micro_keydown ($char_ASCII)
//micro_keyup ($char_ASCII)
//micro_keypress ($char_ASCII)
//move
SUB(micro_move, $x_cor, $y_cor)
WHILE(DIST($x_cor, $y_cor, $_xmouse, $_ymouse) > 3)
$x_temp = $_xmouse
$y_temp = $_ymouse
$x_dist = $x_cor - $_xmouse
$y_dist = $y_cor - $_ymouse
IF($x_dist < 0)
$x_dist = 127 + int(SQRT(abs($x_dist*4)))
else
$x_dist = int(SQRT(abs($x_dist*4)))
END_IF
IF($y_dist < 0)
$y_dist = 127 + int(SQRT(abs($y_dist*4)))
else
$y_dist = int(SQRT(abs($y_dist*4)))
END_IF
CALL ("micro_com.dll", $com, 33554432 + $x_dist*256 + $y_dist)
END_CYC
END_SUB
//lclick
SUB(micro_lclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777217)
END_SUB
//rclick
SUB(micro_rclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777218)
END_SUB
//mclick
SUB(micro_mclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777219)
END_SUB
//ldown
SUB(micro_ldown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331649)
END_SUB
//rdown
SUB(micro_rdown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331650)
END_SUB
//mdown
SUB(micro_mdown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331651)
END_SUB
//lup
SUB(micro_lup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108865)
END_SUB
//rup
SUB(micro_rup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108866)
END_SUB
//mup
SUB(micro_mup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108867)
END_SUB
//dblclick
SUB(micro_dblclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 83886081)
END_SUB
//wheeldown
SUB(micro_wheeldown, $mult)
CALL ("micro_com.dll", $com, 100663423 + $mult)
END_SUB
//wheelup
SUB(micro_wheelup, $mult)
CALL ("micro_com.dll", $com, 100663296 + $mult)
END_SUB
//keydown
SUB(micro_keydown, $char_ASCII)
CALL ("micro_com.dll", $com, 117440512 + code($char_ASCII))
END_SUB
//keyup
SUB(micro_keyup, $char_ASCII)
CALL ("micro_com.dll", $com, 134217728 + code($char_ASCII))
END_SUB
//keypress
SUB(micro_keypress, $char_ASCII)
CALL ("micro_com.dll", $com, 150994944 + code($char_ASCII))
END_SUB
#include <Mouse.h>
#include <Keyboard.h>
unsigned long par = 0;
String instring = "";
int kmfunct = 0;
int x_cor = 0;
int y_cor = 0;
int mult = 0;
int inchar = 0;
void setup() {
Serial.begin(9600);
Mouse.begin();
Keyboard.begin();
}
void loop() {
while(Serial.available() > 0){
inchar = Serial.read();
if (isDigit(inchar)) {
instring += (char)inchar;
}
}
par = instring.toInt();
instring = "";
if (par > 0) {
kmfunct = par/16777216 ;
switch (kmfunct) {
case 1: //Mouse.click
Mouse.click(par - kmfunct*16777216);
break;
case 2: // Mouse.move
x_cor = (par - kmfunct*16777216)/256;
y_cor = par - x_cor*256 - kmfunct*16777216;
if (x_cor > 127) x_cor = 127 - x_cor;
if (y_cor > 127) y_cor = 127 - y_cor;
Mouse.move(x_cor, y_cor, 0);
break;
case 3: //Mouse.press
Mouse.press(par - kmfunct*16777216);
break;
case 4: //Mouse.release
Mouse.release(par - kmfunct*16777216);
break;
case 5: //Mouse.dblclick
Mouse.click(par - kmfunct*16777216);
delay(50);
Mouse.click(par - kmfunct*16777216);
break;
case 6: //wheel.down.up
mult = par - kmfunct*16777216;
if (mult > 127) mult = 127 - mult;
Mouse.move(0, 0, mult);
case 7: // Keyboard.keydown
Keyboard.press(par - kmfunct*16777216);
break;
case 8: // Keyboard.keyup
Keyboard.release(par - kmfunct*16777216);
break;
case 9: // Keyboard.keypress
Keyboard.write(par - kmfunct*16777216);
break;
}
}
par = 0;
}
Скетч использует 7426 байт (25%) памяти устройства. Всего доступно 28672 байт.
Глобальные переменные используют 265 байт (10%) динамической памяти, оставляя 2295 байт для локальных переменных. Максимум: 2560 байт.
#include "Arduino_mouse_keyboard.cms"
//micro_move ($x_cor, $y_cor)
//micro_lclick ($x_cor, $y_cor)
//micro_rclick ($x_cor, $y_cor)
//micro_mclick ($x_cor, $y_cor)
//micro_ldown ($x_cor, $y_cor)
//micro_rdown ($x_cor, $y_cor)
//micro_mdown ($x_cor, $y_cor)
//micro_lup ($x_cor, $y_cor)
//micro_rup ($x_cor, $y_cor)
//micro_mup ($x_cor, $y_cor)
//micro_dblclick ($x_cor, $y_cor)
//micro_wheeldown ($mult)
//micro_wheelup ($mult)
// вместо $char_ASCII писать не код клавиши, а символ ASCII.
// в ардуино как-то тупо сделали клавиатурные нажатия :/
// пока поддерживают только печатные символы, в будущем добавлю подпрограмму для клавиш-модификаторов.
//micro_keydown ($char_ASCII)
//micro_keyup ($char_ASCII)
//micro_keypress ($char_ASCII)
#include "Arduino_mouse_keyboard.cms"
wait(2)
micro_move (100, 100)
wait(2)
micro_move (500, 500)
wait(2)
micro_move (500, 100)
wait(2)
micro_move (100, 100)
halt
Жмем "применить" и сохраняем скрипт в папку с "micro_com.dll" и "Arduino_mouse_keyboard.cms". Запускаем и смотрим как курсор двигается по прописанным координатам.#include "Arduino_mouse_keyboard.cms"
wait(2)
micro_move (100, 100)
print($_return1) //должно быть "5", иначе - пишите в этой теме, и подумаем в чем ошибка.
halt
$com = 5 //свой порт
//"Arduino_mouse&keyboard" для версии 4.13 и старше.
////////////////////////////////////////////////
// Все процедуры с мышью и клавиатурой через ардуино
//micro_move ($x_cor, $y_cor)
//micro_lclick ($x_cor, $y_cor)
//micro_rclick ($x_cor, $y_cor)
//micro_mclick ($x_cor, $y_cor)
//micro_ldown ($x_cor, $y_cor)
//micro_rdown ($x_cor, $y_cor)
//micro_mdown ($x_cor, $y_cor)
//micro_lup ($x_cor, $y_cor)
//micro_rup ($x_cor, $y_cor)
//micro_mup ($x_cor, $y_cor)
//micro_dblclick ($x_cor, $y_cor)
//micro_wheeldown ($mult)
//micro_wheelup ($mult)
//micro_keydown (key_)
//micro_keyup (key_)
//micro_keypress (key_)
//коды клавиш, если чегото не хватает, дописывайте сами.
#define key_0:48
#define key_1:49
#define key_2:50
#define key_3:51
#define key_4:52
#define key_5:53
#define key_6:54
#define key_7:55
#define key_8:56
#define key_9:57
#define key_a:97
#define key_b:98
#define key_c:99
#define key_d:100
#define key_e:101
#define key_f:102
#define key_g:103
#define key_h:104
#define key_i:105
#define key_j:106
#define key_k:107
#define key_l:108
#define key_m:109
#define key_n:110
#define key_o:111
#define key_p:112
#define key_q:113
#define key_r:114
#define key_s:115
#define key_t:116
#define key_u:117
#define key_v:118
#define key_w:119
#define key_x:120
#define key_y:121
#define key_z:122
#define KEY_LEFT_CTRL:128
#define KEY_LEFT_SHIFT:129
#define KEY_LEFT_ALT:130
#define KEY_LEFT_GUI:131
#define KEY_RIGHT_CTRL:132
#define KEY_RIGHT_SHIFT:133
#define KEY_RIGHT_ALT:134
#define KEY_RIGHT_GUI:135
#define KEY_UP_ARROW:218
#define KEY_DOWN_ARROW:217
#define KEY_LEFT_ARROW:216
#define KEY_RIGHT_ARROW:215
#define KEY_BACKSPACE:178
#define KEY_TAB:179
#define KEY_RETURN:176
#define KEY_ESC:177
#define KEY_INSERT:209
#define KEY_DELETE:212
#define KEY_PAGE_UP:211
#define KEY_PAGE_DOWN:214
#define KEY_HOME:210
#define KEY_END:213
#define KEY_CAPS_LOCK:193
#define KEY_F1:194
#define KEY_F2:195
#define KEY_F3:196
#define KEY_F4:197
#define KEY_F5:198
#define KEY_F6:199
#define KEY_F7:200
#define KEY_F8:201
#define KEY_F9:202
#define KEY_F10:203
#define KEY_F11:204
#define KEY_F12:205
//move
SUB(micro_move, $x_cor, $y_cor)
WHILE(DIST($x_cor, $y_cor, $_xmouse, $_ymouse) > 3)
$x_temp = $_xmouse
$y_temp = $_ymouse
$x_dist = $x_cor - $_xmouse
$y_dist = $y_cor - $_ymouse
IF($x_dist < 0)
$x_dist = 127 + int(SQRT(abs($x_dist*4)))
else
$x_dist = int(SQRT(abs($x_dist*4)))
END_IF
IF($y_dist < 0)
$y_dist = 127 + int(SQRT(abs($y_dist*4)))
else
$y_dist = int(SQRT(abs($y_dist*4)))
END_IF
CALL ("micro_com.dll", $com, 33554432 + $x_dist*256 + $y_dist)
END_CYC
END_SUB
//lclick
SUB(micro_lclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777217)
END_SUB
//rclick
SUB(micro_rclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777218)
END_SUB
//mclick
SUB(micro_mclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 16777219)
END_SUB
//ldown
SUB(micro_ldown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331649)
END_SUB
//rdown
SUB(micro_rdown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331650)
END_SUB
//mdown
SUB(micro_mdown, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 50331651)
END_SUB
//lup
SUB(micro_lup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108865)
END_SUB
//rup
SUB(micro_rup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108866)
END_SUB
//mup
SUB(micro_mup, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 67108867)
END_SUB
//dblclick
SUB(micro_dblclick, $x_cor, $y_cor)
micro_move($x_cor, $y_cor)
CALL ("micro_com.dll", $com, 83886081)
END_SUB
//wheeldown
SUB(micro_wheeldown, $mult)
CALL ("micro_com.dll", $com, 100663423 + $mult)
END_SUB
//wheelup
SUB(micro_wheelup, $mult)
CALL ("micro_com.dll", $com, 100663296 + $mult)
END_SUB
//keydown
SUB(micro_keydown, $key_)
CALL ("micro_com.dll", $com, 117440512 + int($key_))
END_SUB
//keyup
SUB(micro_keyup, $key_)
CALL ("micro_com.dll", $com, 134217728 + int($key_))
END_SUB
//keypress
SUB(micro_keypress, $key_)
CALL ("micro_com.dll", $com, 150994944 + int($key_))
END_SUB
#include "Arduino_mouse_keyboard.cms"
//контроллер выделяет текст активного окна и удаляет его
wait(1)
micro_keydown (KEY_RIGHT_CTRL) //зажимает левый контрал
micro_keydown (key_a) //зажимает клавишу "A"
waitms(100)
micro_keyup (key_a) //отпускает клавишу "A"
micro_keyup (KEY_RIGHT_CTRL) //отпускает левый контрал
waitms(100)
micro_keypress (KEY_BACKSPACE) //нажимает и отпускает клавишу BACKSPACE
halt
key_0
key_1
key_2
key_3
key_4
key_5
key_6
key_7
key_8
key_9
key_a
key_b
key_c
key_d
key_e
key_f
key_g
key_h
key_i
key_j
key_k
key_l
key_m
key_n
key_o
key_p
key_q
key_r
key_s
key_t
key_u
key_v
key_w
key_x
key_y
key_z
KEY_LEFT_CTRL
KEY_LEFT_SHIFT
KEY_LEFT_ALT
KEY_LEFT_GUI
KEY_RIGHT_CTRL
KEY_RIGHT_SHIFT
KEY_RIGHT_ALT
KEY_RIGHT_GUI
KEY_UP_ARROW
KEY_DOWN_ARROW
KEY_LEFT_ARROW
KEY_RIGHT_ARROW
KEY_BACKSPACE
KEY_TAB
KEY_RETURN
KEY_ESC
KEY_INSERT
KEY_DELETE
KEY_PAGE_UP
KEY_PAGE_DOWN
KEY_HOME
KEY_END
KEY_CAPS_LOCK
KEY_F1
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_F10
KEY_F11
KEY_F12
забыл в видео запрограмировать ардуинку ++++
У тебя здесь съехали коды цифр на 1. Должно быть от 48 до 57Code: (clickermann) [Select]#define key_0:49
#define key_1:50
#define key_2:51
#define key_3:52
#define key_4:53
#define key_5:54
#define key_6:55
#define key_7:56
#define key_8:57
#define key_9:58
У тебя здесь съехали коды цифр на 1. Должно быть от 48 до 57
Пусть код передают, нефиг баловать.Какое-ж это баловство? Чистейший Разврат, неокрепших умов.
Аналог Micro с али стоит 340 р.Буду рад ссылке)
#include "Arduino_mouse_keyboard.cms"
// подпрограмма обязательно выше вызова
SUB(mouse, $IN_X, $IN_Y, $mouse, $Razb_X, $Razb_Y)
IF(($mouse = 11) or ($mouse = 12))
$MOVE_END_X=$IN_X + rnd(rnd(-1*$Razb_Y, 0),rnd(0, $Razb_Y))
$MOVE_END_Y=$IN_Y + rnd(rnd(-1*$Razb_Y, 0),rnd(0, $Razb_Y))
ELSE
$MOVE_END_X=$IN_X + rnd(rnd(-1*$Razb_X, 0),rnd(0, $Razb_X))
$MOVE_END_Y=$IN_Y + rnd(rnd(-1*$Razb_Y, 0),rnd(0, $Razb_Y))
END_IF
//-------------------------------------------------------
$MOVE_SPEED = 1 // множитель скорости
$MOVE_Start_X = $_xmouse // Считать текущую X
$MOVE_Start_Y = $_ymouse // Считать текущую Y
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
// Расстояние между начальной и конечной точками:
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
IF($MOVE_SPEEDVAR < 1)
$MOVE_SPEEDVAR = 1
END_IF
$MOVE_step=($dist-1)/$MOVE_SPEEDVAR
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
// Промежуточная точка с рандомом:
$MOVE_X_ = ROUND($MOVE_X,0)+RND(-5,5)
$MOVE_Y_ = ROUND($MOVE_Y,0)+RND(-5,5)
micro_move($MOVE_X_, $MOVE_Y_)
IF($_return1 != 5) // Если Ардуино выключено то:
MOVE($MOVE_X_, $MOVE_Y_)
END_IF
WAITMS(1)
END_CYC
// Конечная точка:
micro_move($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5) // Если Ардуино выключено то:
move($MOVE_END_X, $MOVE_END_Y)
END_IF
//-------------------------------------------------------
SWITCH($mouse)
CASE(0)
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(1)
micro_lclick($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
print("- Без Ардуино -")
LCLICK($MOVE_END_X, $MOVE_END_Y) // Левый клик
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(2)
micro_rclick($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
RCLICK($MOVE_END_X, $MOVE_END_Y) // Правый клик
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(3)
micro_mclick($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
MCLICK($MOVE_END_X, $MOVE_END_Y) // Средний клик
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(4)
micro_dblclick($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
DBLCLICK($MOVE_END_X, $MOVE_END_Y) // Двойной левый
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(5)
micro_ldown($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
LDOWN($MOVE_END_X, $MOVE_END_Y) // Зажать левую
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(6)
micro_lup($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
LUP($MOVE_END_X, $MOVE_END_Y) // Отпустить левую
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(7)
micro_rdown($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
RDOWN($MOVE_END_X, $MOVE_END_Y) // Зажать правую
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(8)
micro_rup($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
RUP($MOVE_END_X, $MOVE_END_Y) // Отпустить правую
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(9)
micro_mdown($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
MDOWN($MOVE_END_X, $MOVE_END_Y) // Зажать среднюю
END_IF
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(10)
micro_mup($MOVE_END_X, $MOVE_END_Y)
IF($_return1 != 5)
END_IF
MUP($MOVE_END_X, $MOVE_END_Y) // Отпустить среднюю
WAITMS(50+rnd(rnd(-9,0),rnd(0,23)))
CASE(11)
micro_wheeldown($Razb_X)
WAITMS(200+rnd(rnd(-47,0),rnd(0,37)))
IF($_return1 != 5)
FOR($i=0, $i < $Razb_X)
WHEELDOWN // Колесико вниз
WAITMS(200+rnd(rnd(-47,0),rnd(0,37)))
END_CYC
END_IF
CASE(12)
micro_wheelup($Razb_X)
WAITMS(200+rnd(rnd(-47,0),rnd(0,37)))
IF($_return1 != 5)
FOR($i=0, $i < $Razb_X)
WHEELUP // Колесико вверх
WAITMS(200+rnd(rnd(-47,0),rnd(0,37)))
END_CYC
END_IF
END_SWITCH
$mouse=0
$Razb_X=0
$Razb_Y=0
END_SUB
//-------------------------------------------------------
// SUB(mouse, $IN_X, $IN_Y, $mouse, $Razb_X, $Razb_Y)
// 1: $IN_X - координата х
// 2: $IN_Y - координата Y
// 3: $mouse - действия мыши в конечной точке
// $mouse = 0 нет действия
// $mouse = 1 LCLICK (Левый клик)
// $mouse = 2 RCLICK (Правый клик)
// $mouse = 3 MCLICK (Средний клик)
// $mouse = 4 DBLCLICK (Двойной левый клик)
// $mouse = 5 LDOWN (Зажать левую)
// $mouse = 6 LUP (Отпустить левую)
// $mouse = 7 RDOWN (Зажать правую)
// $mouse = 8 RUP (Отпустить правую)
// $mouse = 9 MDOWN (Зажать среднюю)
// $mouse = 10 MUP (Отпустить среднюю)
// $mouse = 11 WHEELDOWN (Колесико вниз)
// $mouse = 12 WHEELUP (Колесико вверх)
// Функции при $mouse от 1 до 10
// 4: $Razb_X - разброс х
// 5: $Razb_Y - разброс Y
// Функции при $mouse = 11 или 12
// 4: $Razb_X - число строк колесиком
// 5: $Razb_Y - разброс х и разброс Y
//------------------ ТЭСТ --------------------
// Рисуем в Паинте
//GOTO(mous) // Пропускаем зачистку холста
// Очищаем холст
mouse(140,110,1,8,8) // кликаем на выделение
mouse(10,200,5,0,0) // Верхний угол рамки выделения
mouse(1000,970,6,0,0) // Нижний угол рамки выделения
mouse(500,250,2,0,0) // Открываем меню
WAITMS(100)
mouse(560,267,1,0,0) // стираем старое
WAITMS(100)
mous:
mouse(290,96,1,5,5) // включаем карандаш
FOR($i=0, $i < 5) // Рисуем 5 раз
// рисуем треугольник
mouse(100,300,5,5,8) // точка 1 c зажимом
mouse(920,300,0,5,8) // точка 2
mouse(510,900,0,100,5) // точка 3
WAITMS(100)
mouse(100,300,6,5,8) // точка 1 c отпуском
// рисуем прямоугольник
mouse(300,350,5,5,8) // точка 4 c зажимом
mouse(720,350,0,5,8) // точка 5
mouse(720,530,0,5,8) // точка 6
mouse(300,530,0,5,8) // точка 7
mouse(300,350,6,5,8) // точка 4 c отпуском
WAIT(1)
END_CYC
HALT