1
Использование / Re: Расширенный функционал (библиотека)
« on: October 12, 2021, 10:49:00 AM »
Спасибо. Будем разбираться
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Могу сделать на AutoIt и кидать сообщения кликеру при событиях. Так же, наверно нужно сделать включение/отключение слежения. А может и не надо.Если можно иметь такую возможность, то лучше ее иметь.
Проф пульты взаимодействуют с API программы и посылают в неё команды напрямую.
В системе курсор всего один, неоткуда взяться второму, это просто не предусмотрено в ОС.Есть всякие такие http://adminxp.ru/dva-kursora/ методы сделать 2 курсора, но они не стабильны.
Так скажи, нужно ли прокинуть события колеса и/или события перемещения?это сделало бы работу удобнее.
Да, сдвиг же, 10 кнопок сканирует. Но 10 мс там прописано всегда 6*10 ++
но задержка только если кнопка нажата, а иначе на оба цикла только одна задержка 10 мс
Хоть я на заре и просил такую функцию, сейчас я считаю это лютой дичью. Всегда можно сделать по другому и в большинстве случаев это будет более правильно.
Знаю, что так можно в PHP может ещё где. Хорошо, конечно, когда функционал шире. Но в том виде какая она сейчас (с ограничениями), эта штука не пригодилась ни разу.
print(GETVAR(STRCONCAT("$",$str,$arr[0], [2])))
это прекрасно, что есть! Мне поможет.Почему перешёл на ISKEYDOWN?цикл сканирования 6 позиций. там есть сдвиг.
ISKEYDOWN хорошо, когда клавиш мало. Их уже 24 шт. Сейчас цикл сканирования 24 * 10 + ещё чуть ≈ 250 ms
Работает ли мой код у вас?Блекмэджик не Адоб. В Давинчи всё всегда на местах. Очень мало какие окна можно отцепить. Это окно с колесам всегда на месте. Именно по этой причине вся эта возня с программированием имеет смысл.
Без понятия. У меня же нет Давинчи. Если только по скрину поелозить, так нужно координаты переделывать, там же всё захордкоржено.
LOGCLEAR
$csv = "koorda.csv"
strseparate(TFREAD($csv, 2), ",", $Names)
strseparate(TFREAD($csv, 3), ",", $X)
strseparate(TFREAD($csv, 4), ",", $y)
for ($n=7, $n<ARRSIZE($names))
print ($names[$n])
WHILE(iskeydown(#q) = 0)
waitms(20)
END_CYC
WHILE(iskeydown(#q)=1)
print ("нажата"," ",$n)
waitms(20)
WHILE(iskeydown(#q) = 1) //тут пока не отпустит
waitms(50)
END_CYC
$x[$n]= $_xmouse
$y[$n]= $_ymouse
print("x=",$x[$n],"y=",$y[$n],"$n=",$n)
END_CYC
END_CYC
for ($n=0, $n<ARRSIZE($names))
print($x[$n],", ")
print($y[$n],", ")
END_CYC
$Xstr=$x[0]
$ystr=$y[0]
for ($n=1, $n<ARRSIZE($names))
$Xstr= STRCONCAT($Xstr,",", $x[$n])
$Ystr= STRCONCAT($Ystr,",", $Y[$n])
END_CYC
print($Xstr)
print($Ystr)
$scva= "ko.csv"
TFDELETE($scva, 3 )
TFWRITE ($scva, $xstr, 3 )
TFDELETE($scva, 4 )
TFWRITE ($scva, $ystr, 4 )
halt
В справке есть все эти кодыя дал ссылку на пост паре человек, которые далеки от программирования и они не будут открывать хэлп
Язык сценариев -- >> Приложение 1. Коды клавиш
Лучше самому преобразовать для нужного диапазона символов. Вот цифры и буквы:Да, стоит сделать такую подпрограмму. Она отработает 1 раз при загрузке и не будет тормозить работу, а удобства добавит сильно.Code: (clickermann) [Select]$liters = "0123456789:::::::ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$code = STRPOS($liters, "Z") + 47
print($code)
С именами я не понял. В чём проблема задать нужные имена. Хранил бы в ini и проблем бы не было ни с секциями ни с именами. В csv тоже не проблема вроде.В ini файле не наглядно хранить координаты, они же парами, и к ним еще клавиша, которая их вызывает. И создавать этот ini хлопотно в моем случае. Сложно проконтролировать правильность.
$arr[0]= "Маши"
$arr[2]= "Пети"
$arr[2]= "Васи"
$str= "Сумка"
//Массивы, что в сумке?
$СумкаМаши[0]= "печенье"
$СумкаМаши[1]= "помада
$СумкаМаши[2]= "расчёска"
$СумкаПети[0]= "машинка"
$СумкаПети[1]= "гайка"
$СумкаПети[2]= "петарда"
$СумкаВаси[0]= "расческа"
$СумкаВаси[1]= "шарик"
$СумкаВаси[2]= "ручка"
print(STRCONCAT("$",$str,$arr[0],[2]))
print($СумкаМаши[2])
waitms(50)
halt
$arr[0]=
$arr[1]=
$arr[2]=
$arr[3]=
$arr[4]=
не очень компактная$Str="11,22,33,44,55,66"
strseparate($str, ",", $Arr)
а можно сделать в одну строку задание массива? Сделал тестовую версию. Если кто-то попробует - пожалуйста, отпишитесь.
Работает пока 4-мя колесами во вкладке Primaries. Это просто тест. Потом будет остальное.
1-4 выбор колеса
помещает курсор на элемент управления и зажимает лкм. Чтобы использовать мышь свободно надо кликнуть.
пока программа работает она будет захватывать при нажатии кнопок курсор. остановить программу можно кнопкой стоп в Кликермане.
Alt+s не сработает, потому, что Давинчи перехватывает свой шоткат "добавить ноду после"
w - Y
e - R
r - G
t - B
y - крутилка под колесомCode: (clickermann) [Select]SUB(Will)
//подпрограмма установки мыши с зажатой лкм на нужную координату
LOGCLEAR
LUP($_xmouse, $_ymouse)
WAITMS(10)
LDOWN($X[$N], $Y[$N])
print("$Names=", $Names[$n])
print("координаты ", $X[$N],",", $Y[$N])
END_SUB
LOGCLEAR
$csv = "koorda.csv" //задаем имя файла с координатиами
//читаем строки файла в массивы
strseparate(TFREAD($csv, 2), ",", $Names)
strseparate(TFREAD($csv, 3), ",", $X)
strseparate(TFREAD($csv, 4), ",", $y)
strseparate(TFREAD($csv, 5), ",", $Keya)
//strseparate(TFREAD($csv, 6), ",", $Keyb)
//trseparate(TFREAD($csv, 7), ",", $Keyc)
print("массив создан")
print("$keya[18]=",$keya[18])
$SHIFT=1
WHILE(1) // начало бесконечного цикла
FOR($S=49,$s<53) //значения кнопок 1-4
IF(ISKEYDOWN($s)=1)
WHILE(iskeydown($s)=1) //если клавиша все еще нажата, то подвисам тут пока не отпустит
waitms(10)
END_CYC
$n=($s-49)*6+1
Will()
$SHIFT=$n
end_if
END_CYC
FOR ($n=$SHIFT, $n<$SHIFT+6)
// PRINT($SHIFT, " " ,$N)
if(ISKEYDOWN($keya[$n])=1)//если нажата одна из кнопок массива Keya то
Will() //исполнить подпрограмму
WHILE(iskeydown($keya[$n]) = 1) //если клавиша все еще нажата, то подвисам тут пока не отпустит
waitms(10)
END_CYC
end_if
WAITMS(10)
END_CYC
END_CYC
содержимое файла koorda.csv
файл можно редактировать в табличном редакторе. Например Apache OpenOffice Calc https://www.openoffice.org/
кнопки можно переназначать в 5-й строке, которая начинается с "Keya" в соответствии с этой таблицей
https://github.com/sepehrsohrabi/Decimal-Virtual-Key-CodesCode: [Select]0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24
0,Lift Whill,Lift Y,Lift R,Lift G,Lift B,Shad Roll,Gamma Whill,Gamma Y,Gamma R,Gamma G,Gamma B,Gamma Roll,Gain Whill,Gain Y,Gain Y,Gain G,Gain B,Gain Roll,Offset Whill,Offset Y,Offset R,Offset G,Offset B,Offset Roll
x1,90,34,75,109,146,85,268,210,252,288,325,271,447,389,431,467,504,442,624,573,573,627,676,624
y1,854,944,944,944,944,960,856,944,944,944,944,960,855,944,944,944,944,960,854,944,944,944,944,961
Keya,81,87,69,82,84,89,81,87,69,82,84,89,81,87,69,82,84,89,81,87,69,82,84,89
Keyb,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Keyc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,Q или 1,w,e,r,t,y,Q или 2,w,e,r,t,y,Q или 3,w,e,r,t,y,Q или 4,w,e,r,t,y
$arr[0]= "Маши"
$arr[2]= "Пети"
$arr[2]= "Васи"
$str= "Сумка"
//Массивы, что в сумке?
$СумкаМаши[0]= "печенье"
$СумкаМаши[1]= "помада
$СумкаМаши[2]= "расчёска"
$СумкаПети[0]= "машинка"
$СумкаПети[1]= "гайка"
$СумкаПети[2]= "петарда"
$СумкаВаси[0]= "расческа"
$СумкаВаси[1]= "шарик"
$СумкаВаси[2]= "ручка"
print(STRCONCAT("$",$str,$arr[0],[2]))
print($СумкаМаши[2])
waitms(50)
halt
А разве у ардуино есть столько входов? Или там есть приблуды для расширения?вот она приблуда для расширения. Их можно несколько подключить.