1
Использование / Re: Расширенный функционал (библиотека)
« : Октябрь 12, 2021, 10:49:00 am »
Спасибо. Будем разбираться
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Могу сделать на 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 раз при загрузке и не будет тормозить работу, а удобства добавит сильно.Код: Clickermann
$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 - крутилка под колесомКод: Clickermann
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-CodesКод: [Выделить]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
А разве у ардуино есть столько входов? Или там есть приблуды для расширения?вот она приблуда для расширения. Их можно несколько подключить.