View previous topic :: View next topic |
Author |
Message |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Tue Nov 12, 2024 13:46 Post subject: |
|
|
Orion9 wrote: |
Верните свой удаленный скрипт, хочется на него взглянуть
|
Да от него на нынешний момент только основа осталась. Как подключить библиотеку. Он выложен в теме AutoIt на ру.борде.
Orion9 wrote: | Я примерно понял технику: запустить ahk из vbs, передав ему имя. Может и попробую когда, если возникнет потребность  |
Совершенно верно. В этой теме и на офсайте есть рыба. Но при реализации куча нюансов вылезла. |
|
Back to top |
|
 |
ProgMan13
Joined: 19 Aug 2009 Posts: 336
|
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Thu Nov 14, 2024 10:43 Post subject: |
|
|
А можно чуть поподробнее, как пользоваться этой опцией? Установил обновление. Не зависимо от значения CheckUTF8Result перед выводом результата в колонку стала появляться надпись WSA. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Thu Nov 14, 2024 11:52 Post subject: |
|
|
Браво, ProgMan13, теперь всё заработало
И визуально работает чуть быстрее, чем тот же скрипт на Autorun. Будет время, потестирую получше.
AkulaBig
Я так понял, что это сделали примочку для внешних движков. Vbs это не касается. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Thu Nov 14, 2024 14:51 Post subject: |
|
|
Orion9 wrote: |
Я так понял, что это сделали примочку для внешних движков. Vbs это не касается. |
Понятно. Да, ошибка перестала выскакивать. Самое интересное, что изменение значения ключа не на что не влияет. Его вообще можно не прописывать. Скорость ничуть не изменилась. Но появился неприятный момент. Появляется значение WSA, которое потом меняется на правильное значение. Из-за этого пока не зашло. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Thu Nov 14, 2024 17:44 Post subject: |
|
|
Quote: | Его вообще можно не прописывать |
Если его не прописывать, то будут кракозябры вместо русских имен.
Для правильной работы мне потребовалось указать этот ключ и в скрипте сделать вывод в stdout в кодировке 650001. Все другие варианты - либо ANSI, либо кракозябры.
А что такое WSA и почему вы его ловите? Колонка с vbs-скриптом у меня работает нормально независомо от ключа CheckUTF8Result.
Добавлено спустя 8 минут:
А, кажется, увидел. Появляется такая надпись перед заполнением данных, но работе не мешает. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Thu Nov 14, 2024 18:45 Post subject: |
|
|
Orion9 wrote: |
Если его не прописывать, то будут кракозябры вместо русских имен.
Для правильной работы мне потребовалось указать этот ключ и в скрипте сделать вывод в stdout в кодировке 650001. Все другие варианты - либо ANSI, либо кракозябры.
|
Теперь понятно. Вы как Штирлиц. Пытать вас приходится
Как прописать кодировку в выводе? Сейчас-то мне конвертировать приходится через bin. Еще знаю UDF-функционал encoding. Но я понял надо кодовую страницу вывода задать?
Orion9 wrote: |
Колонка с vbs-скриптом у меня работает нормально |
Я это с первого раза понял и тестирую au3.
Orion9 wrote: |
А что такое WSA и почему вы его ловите?
А, кажется, увидел. Появляется такая надпись перед заполнением данных, но работе не мешает. |
Работе не мешает, но использовать такой вывод несерьезно. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Thu Nov 14, 2024 20:38 Post subject: |
|
|
Quote: | Я это с первого раза понял и тестирую au3 |
Ну откуда же я знал, что вы на au3 пишите? Говорил же вам верните скрипт ) Хотя если он на AutoIt, то в нем я совершенное не силен.
Quote: | Но я понял надо кодовую страницу вывода задать? |
Да.
В Autohotkey это задается командой FileEncoding перед выводом в stdout, т.е. в самом скрипте это выглядит как:
Code: | FileEncoding 65001
content := filename |
|
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Thu Nov 14, 2024 22:22 Post subject: |
|
|
Orion9 wrote: |
В Autohotkey |
Спасибо. Я думал вы на au3 пишите. Придется самому разбираться.
Orion9 wrote: | AutoIt, то в нем я совершенное не силен.
|
Какая разница на каком языке писать, если понимаешь алгоритмы программирования. В свое время был у нас препод, который толком не знал, какую кнопку на компе нажать. Но его одного взяли в совместное предприятие и он на премию за алгоритмы купил квартиру, обставил ее. Естественно и женщина хорошая сразу нашлась. А крутые кодеры так и продолжали за зарплату на кнопки давить.
Наверное пока не буду этим вопросом заниматься, так как совсем не устраивает вывод ненужных данных перед заполнением колонок. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Fri Nov 15, 2024 00:02 Post subject: |
|
|
Quote: | Какая разница на каком языке писать, если понимаешь алгоритмы программирования. |
Я знаком с Autohotkey V2, но даже чтение скриптов, написанных на Autohotkey V1, может вызывать серьезные трудности из-за отличий в синтаксисе. И все же, когда я просил вас вернуть удаленный скрипт, я надеялся посмотреть на его алгоритм, прежде всего. Что вы хотите вытянуть из консольной утилиты? |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Fri Nov 15, 2024 06:34 Post subject: |
|
|
Orion9 wrote: |
Я знаком с Autohotkey V2, но даже чтение скриптов, написанных на Autohotkey V1, может вызывать серьезные трудности из-за отличий в синтаксисе. |
Именно из-за этого я от него отказался. Не смог создать тестовый скрипт на версии 2. Решил, что в дальнейшем запутаюсь в нем.
Orion9 wrote: | когда я просил вас вернуть удаленный скрипт, я надеялся посмотреть на его алгоритм, прежде всего. |
Я выше написал, где скрипт лежит. А у меня его нет. Он давно уже изменен.
Orion9 wrote: | Что вы хотите вытянуть из консольной утилиты? |
Из консольной ничего не вытянешь. Потому что она мелькает при работе. Поэтому приходится использовать библиотеку. А значит использовать либо au3, либо ahk. |
|
Back to top |
|
 |
Monarch-LFV

Joined: 22 Jul 2019 Posts: 335
|
(Separately) Posted: Fri Nov 15, 2024 07:12 Post subject: |
|
|
AkulaBig wrote: | Из консольной ничего не вытянешь. Потому что она мелькает при работе. |
Я на VBS со сторонними утилитами обычно вытягиваю не через StdOut, а через временный файл, вызов примерно такой:
Code: | program="%commander_path%\...\program.exe"
WshShell.run "cmd /c """"" & program & """ -params""" & """>""" & txtfile & """", 0, True |
А потом закидываю в переменную (<=32768) содержимое текстового файла, его удаляю, а с переменной делаю парсинг построчно на предмет нужной информации. Никакого окна не мелькает. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Fri Nov 15, 2024 11:27 Post subject: |
|
|
AkulaBig wrote: | Поэтому приходится использовать библиотеку. А значит использовать либо au3, либо ahk. |
Ну так что вы хотели вытянуть-то?
Добавлено спустя 3 минуты:
Monarch-LFV wrote: | А потом закидываю в переменную (<=32768) содержимое текстового файла, его удаляю, а с переменной делаю парсинг построчно на предмет нужной информации. Никакого окна не мелькает. |
Рабочий способ  |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 424
|
(Separately) Posted: Fri Nov 15, 2024 12:51 Post subject: |
|
|
Orion9 wrote: |
Ну так что вы хотели вытянуть-то?
|
Ну а что можно вытянуть из MediaInfo? Тестирую разные способы получения информации и программирование на разных скриптовых языках.
Orion9 wrote: | Рабочий способ  |
Отдельно пробовал этот метод. Смущает, что надо создавать временный файл. Надо будет попробовать в составе скрипта. Хотя сначала надо будет попробовать использовать всякие прожки, скрывающие вывод. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 807
|
(Separately) Posted: Fri Nov 15, 2024 13:49 Post subject: |
|
|
AkulaBig
Понял. Больше для тестов. Просто Monarch-LFV верно отметил, что TCMediaInfo может вытянуть что угодно и как угодно. Благо автор плагина постарался
Что касается мелькания консоли, то я никакой специалист в системных делах, но ряд каких-то техник существует. В Autohotkey я нашел в сети такой подход, может вам пригодится чем)
Code: | RunWaitOne(command) {
local sOut
dhw := A_DetectHiddenWindows
pid :=0
DetectHiddenWindows true
Run A_ComSpec " /k",, "Hide", &pid
WinWait "ahk_pid " pid
DllCall("AttachConsole", "UInt", pid)
DetectHiddenWindows dhw
shell := ComObject("WScript.Shell")
exec := shell.Exec(A_ComSpec . " /C " . command)
sOut := exec.StdOut.ReadAll()
DllCall("FreeConsole")
if ProcessExist(pid)
ProcessClose pid
return sOut
}
|
|
|
Back to top |
|
 |
|