|
|
|
LuaPosh, Новые возможности пилота |
|
|
Fors1k |
6.6.2020, 18:36
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 1712
Пользователь №: 18.746
|
Благодаря команде split, мы можем обойтись без постройки сложных паттернов регэкспа. --lua log "clear";log"mode compact";require "luaposh" PScode('return',{[[#} # $str ="89997001234:Forsik007:Алла Пугачева:uopilot@mail.ru:zdarovabanditi" -split ':' $num =($str[0]).Substring(7,4) $id =$str[1] $mail=$str[3]
log $num, $id, $mail # ]]}) Кстати, данная строка похожа на инфо о каком-то клиенте/заказчике и т. п.. Если планируется обрабатывать много таких строк, то будет классно создать объект клиента, в котором и будут все его данные. А в итоге вообще можем их всех сохранить в excel файл. Например, вот так: --lua log "clear";log"mode compact";require "luaposh" PScode('return',{[[#} # $pathOut='C:\test\baza.csv'
$str ="89997001234:Forsik007:Алла Пугачева:uopilot@mail.ru:zdarovabanditi" -split ':' $str1 ="88887774321:Bond007:Филипп Киркоров:philpilot@gmail.ru:privetbanditi" -split ':' $clientALLA=@{#} num =($str[0]).Substring(7,4) id =$str[1] mail=$str[3] } $clientPHIL=@{#} num =($str1[0]).Substring(7,4) id =$str1[1] mail=$str1[3] } $Base=($clientALLA,$clientPHIL) # Показать в логе Аллу* log $clientALLA # Показать в логе только mail Аллы log $clientALLA.mail # Сохранить базу в Excel таблицу $base|%{[pscustomobject]$_| export-csv $pathOut -not -enc utf8 -d ';' -A} start $pathOut # ]]}) * Не забываем, что нужно открыть настройки пилота, выбрать шрифт лога, Lucida Console.Сообщение отредактировал Fors1k - 11.1.2021, 23:50
--------------------
Для связи
|
|
|
|
Levo222 |
17.6.2020, 16:48
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(Fors1k @ 23.3.2020, 22:20) Распаковать рядом с exe пилота. v. 4.1 Прикрепленный файл luaposh_v4.1.rar ( 5,08 килобайт ) Кол-во скачиваний: 51
Архив битый --Upd--Вот это поворот) Все версии архивов битые Цитата Совет: Распаковать рядом с exe пилота.
v. 4 Прикрепленный файл luaposh_v4.rar ( 5,01 килобайт ) Кол-во скачиваний: 34 Совет: Распаковать рядом с exe пилота.
v. 3 Прикрепленный файл luaposh_v3.rar ( 3,31 килобайт ) Кол-во скачиваний: 28 Совет: Распаковать рядом с exe пилота.
v. 2 Прикрепленный файл luaposh_v2.rar ( 1,88 килобайт ) Кол-во скачиваний: 41 Совет: Распаковать рядом с exe пилота.
v. 1 Прикрепленный файл luaposh.rar ( 1010 байт ) Кол-во скачиваний: 34
Как закончилось моё знакомство с LuaPoshk)))
|
|
|
|
Fors1k |
9.7.2020, 19:15
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 1712
Пользователь №: 18.746
|
LuaPosh V5 - Добавил команду определения цвета в заданных координатах.
Получить цвет в окне 202896, в координатах 442х101:
--lua log"clear";log"mode compact";require"luaposh" PScode('void',{[[#} # $color=Get-Color 202896 442 101 msg_box $color # ]]}) Поиск цвета можно отправить в отдельный поток, а ваш скрипт в это время может заниматься другими делами:
--lua log"clear";log"mode compact";require"luaposh" PScode('r',{[[#} # ### Поток 1 Start-Timer @" if ((Get-Color 922556 34 16) -eq 16510950){#} # отслеживаем появление цвета 16510950 msg_box "Цвет обнаружен" # действия таймера log "Цвет обнаружен" # действия таймера } "@ 500 # интервал выполнения 500 ms ### Поток 2 Start-Timer @" if ((Get-KeyState 0x20)){#} # отслеживаем нажатие пробела msg_box "Нажат пробел" # действия таймера log "ПРОБЕЛ" # действия таймера } "@ 500 # интервал выполнения 500 ms ### Основной поток while((on)){#} log ("Я просто считаю: "+$i++) # действия основного потока sleep -m 450 # действия основного потока } # ]]}) - Повысил скорость общения uopilot и luaposh в 350 раз.
- Так как на форуме много раз поднималась тема защиты кода, сделал возможность шифрования скрипта. Кто планирует передавать свой скрипт, но хочет избежать копирования - обращайтесь. Скрипт будет запускаться только у того, у кого вы захотите.
Поддерживаемые языки: Lua , LuaPosh.
- Проверить текущую версию:
--lua log"clear";log"mode compact";require"luaposh" PScode('void',{[[version]]})
- Перезапустить LuaPosh:
--lua require"luaposh" lp_restart()
Обновление можно установить через апдейт. Если у кого возникнут сложности с апдейтом, в первый пост прикрепил архив. Сообщение отредактировал Fors1k - 11.1.2021, 23:55
--------------------
Для связи
|
|
|
|
Fors1k |
15.7.2020, 15:13
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 1712
Пользователь №: 18.746
|
Prompt с возможностью выбора вариантов.Совет:
check_prompt ("Вариант 1", "Вариант 2") "Подсказка"(необязательно) Начнем со скучного примера, где мы сами задаем варианты, и не требуется использовать подсказку: --lua log "clear";log"mode compact";require "luaposh" PScode('return',{[[#} # $a = 1
$b = 2
$c = 7 + ( check_prompt ($a,$b) ) log $c # ]]}) В этом примере нам пригодится возможность вывода подсказки перед запросом выбора. Задача: Если получаем число меньше 50, то сохраним его в один файл, если больше 50, то в другой. --lua log "clear";log"mode compact";require "luaposh" PScode('r',{[[#} # $path1 = "C:\маленькие числа.txt"
$path2 = "C:\большие числа.txt"
$number = Get-Random 100
$number|out-file (check_prompt ($path1, $path2) "Получилось число $number`. Куда его сохраним?") # ]]}) Переходим к самому интересному примеру из представленных, в котором мы не будем сами задавать варианты выбора. Задача: посмотреть список процессов, запущенных от имени какого-либо пользователя. --lua log "clear";log"mode compact";require "luaposh" PScode('return',{[[#} # $proc = Get-Process -IncludeUserName
$user = $proc.username|Sort-Object -Unique $uProc = $proc|Where-Object username -eq (check_prompt $user "Выберите пользователя:")|ft -a log $uProc # ]]}) Если у кого-то будут еще идеи как можно интересно использовать такого вида prompt, то присылайте ваш код ниже, будет интересно посмотреть. Сообщение отредактировал Fors1k - 12.1.2021, 2:01
--------------------
Для связи
|
|
|
|
Fors1k |
22.12.2020, 0:33
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 1712
Пользователь №: 18.746
|
Цитата(DarkMaster @ 3.10.2020, 18:20) Лично у меня пош стартует около 15 секунд. Всё, наконец-то я с этим разобрался (IMG: style_emoticons/default/smile.gif) Выполняем один раз --lua require "luaposh" PScode('void',{[[Install]]}) отныне пош будет стартовать мгновенно. --lua log "clear";log "mode compact";require"luaposh" begin = os.clock() PScode('return',{[[#} # log "Started" # ]]}) finish = os.clock() - begin log(finish) Результат 0.341 (IMG: style_emoticons/default/shtanga.gif) Спасибо за настойчивость в данном вопросе, это подтолкнуло меня дожать эту тему (IMG: style_emoticons/default/wink.gif) Сообщение отредактировал Fors1k - 12.1.2021, 20:03
--------------------
Для связи
|
|
|
|
Fors1k |
25.12.2020, 15:17
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 1712
Пользователь №: 18.746
|
LuaPosh V8 SeleniumУстановка:--lua require"luaposh";log "clear";log "mode compact" PScode('return',{[[#} # Install-Selenium
log # ]]}) Пример задачи:- Открыть яндекс
- Найти вики пилота
- Открыть вики
- Открыть страницу функции Exec
- Показать в логе описание функции
code
--lua require"luaposh";log "clear";log "mode compact" PScode('return',{[[#} # Start-Selenium
$luaFunction = 'Exec (Lua)'
$Chrome = Start-SeChrome $Chrome.Url = 'https://ya.ru' sleep 1 $Chrome.FindElementByName('text').SendKeys('uopilot') sleep 1 $Chrome.FindElementByClassName('search2__button').click() sleep 2 $Chrome.FindElementByPartialLinkText('uokit').click() sleep 1 [void]$Chrome.SwitchTo().Window($Chrome.WindowHandles[1]) $Chrome.FindElementById('searchInput').SendKeys($luaFunction) sleep 1 $Chrome.FindElementByName('go').click() $description = $chrome.FindElementsByTagName('p')[0].text log $description # ]]})
демонстрация
Слипы добавлены просто для возможности понаблюдать за происходящим. Результат в логе:Цитата exec - запуск внешнего приложения. Не приостанавливает скрипт на время работы приложения. Для ожидания завершения используйте ExecAndWait (Lua). UoPilot запускать от администратора. Для примера выше должен быть установлен Chrome browser. Пишите, если что-то не будет работать. Буду исправлять. Все его возможности пока не знаю, так что описывайте вашу задачу, постараюсь дать решение. Сообщение отредактировал Fors1k - 11.4.2021, 12:40
--------------------
Для связи
|
|
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|