Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 224, 225, 226
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
AkulaBig



Joined: 03 Dec 2008
Posts: 509

Post (Separately) Posted: Thu Mar 12, 2026 13:52    Post subject: Reply with quote

Orion9
Два вопроса, как к заму сансея Smile
Вот причесаный ваш код. Не обращайте названия на названия переменных. Они просто из вашего примера. Код работает, но просто ужасно медленно. Нет идей, как его ускорить?
Code:
Func FieldET(FileName, FieldIndex, UnitIndex)
   Local gGeoOut = List(), gGeoData = List("", "")
   Local gGeoList = List("Title", "Author")
    Static lst, dat, idx
    If StrPos(FileGetAttr(FileName), "D") Then Return
    If FieldIndex = 1 + 60 Then
       gGeoOut.Count = 0       
       gGeoOut.Text = ProcessExecGetOutput(util_ET, '"' & FileName & '"')
      # OutputDebugString(gGeoOut.Text)
       For idx = 0 To gGeoData.Count - 1
           gGeoData[idx] = ""
       Next
       For geo In gGeoOut
           If StrPos(geo, ":") Then
              lst = StrTrim(StrPart(geo, ":", 1))
              dat = StrTrim(StrPart(geo, ":", 2))
              idx = gGeoList.IndexOf(lst)
              If idx <> -1 Then gGeoData[idx] = dat
           EndIf
       Next
    Endif     
    Return gGeoData[FieldIndex - 1 - 60]
EndFunc

И еще. Вышеприведенная функция нифига не работает со значениями на кириллице. Но есть плагин, который лишь иногда крякозябры выводит. Можно ли взять значение из плагина и прогнать его через известную функцию фикса кодировки?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1040

Post (Separately) Posted: Thu Mar 12, 2026 20:38    Post subject: Reply with quote

AkulaBig
Да есть косяк, и он как-то связан с видимостью или невидимостью окна триала, что с самого начала и заметил sa. Вчера я сосредоточился на переводе кода и запуске обеих версий ТС без ошибок, времени не было проверить всю работоспособность. А ее по сути и нет Smile

Тотал закрывается при клике по верхнему меню или по строке табуляторов, как тут говорилось. И это происходит только, когда автоклик срабатывает на невидимом окне. При этом хук исправно работает, делает, что от него требуется. Проверить можно в отладчике или заменой nCmdShow = 0 на nCmdShow = 1, окно при этом будет мелькать.

Я поставил кучу OutputDebugString, пытаясь найти хоть что-то, но безрезультатно. Единственное, что принесло пользу это
Code:
Pragma AutorunFinalizeSection

OutputDebugString("exit")

Хотя бы понятно, что тотал не падает, а просто выходит — закрывается.

В общем, продолжать искать причины этой проблемы желания особо нет. Может Loopback вернется что подскажет, а меня пока и простой клик с задержкой устраивает )

На счет ExifTool, так она же (эта утилита) сама тормозная, оптимизация вряд ли поможет. Выигрывать доли секунды на оптимизации строковых функций и поиске по массиву — смысла как бы нет, проще уж совсем отказаться от этой утилиты и использувать только в крайнем случае, когда других вариантов вытянуть данные действительно нет, как в случае с гео-данными или какими-то другими специфическими мета-данными. А вы, как я понимаю, что-то другое хотите. Ну тогда лучше MediaInfo использовать, гораздо быстрее будет.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 509

Post (Separately) Posted: Thu Mar 12, 2026 21:55    Post subject: Reply with quote

Orion9 wrote:
На счет ExifTool, так она же (эта утилита) сама тормозна

Не самая быстрая, но норм. wdx-плагин нормально с ней работает. А начал я копаться из-за того, что Exif и плагин опять не поддерживает русские кодировки, подобно MI. Для Exif есть прекрасный Листер-плагин от наших ребят. Там с кодировками все ОК. А wdx-плагин иностранец писал. Вот я и решил скриптом заняться.

Orion9 wrote:
тогда лучше MediaInfo использовать, гораздо быстрее будет.

Они разные данные поддерживают. Exif прекрасно поддерживает документы и много еще чего. С помощью Exif я откажусь от нескольких wdx-плагинов, которые сейчас использую. Полей-бы хватило. Этот монстр совершенно не хуже MI, но для своих данных.

Добавлено спустя 7 минут:

А вместо ProcessExecGetOutput что-то можно использовать? С учетом, что от MI мы сразу из библиотеки данные получали. Может ProcessExecGetOutput тормозит? С помощью ShellExec можно данные получить?

Добавлено спустя 45 минут:

Orion9 wrote:
Да есть косяк, и он как-то связан с видимостью или невидимостью окна триала, что с самого начала и заметил sa.

Забыл прокомментировать. То ли я вам не понятно объяснил, то ли вы невнимательно прочитали мое сообщение.
Косяк именно на встроенной видюхе. На большом компе все отработало отлично. Краш именно на малыше со встроенной видюхой. То-есть один в один, как у кликеров.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1040

Post (Separately) Posted: Fri Mar 13, 2026 00:41    Post subject: Reply with quote

AkulaBig wrote:
Вышеприведенная функция нифига не работает со значениями на кириллице

У exiftool, насколько я помню, есть параметры для работы с кодовыми страницами, например "-lang ru". Я в свое время заходил в справку об этом почитать, но там реально было муторно написано. Сейчас, однако, у болвантуса можно спросить, не стесняйтесь, он на все ответит )
AkulaBig wrote:
Можно ли взять значение из плагина и прогнать его через известную функцию фикса кодировки?

Ту функцию делал Loopback для определенного случая кракозябр, поэтому просто применить ее к выводу exiftool вряд ли возможно. Но у Autorun есть объект Buffer, который может перекодировать строки. Например, если взять алгоритм, про который вы говорите, то:
Code:
Local buf = Buffer(nSize)
buf.Zero()
buf.SetStr(String, 0, nSize, "CP:28591")
Local fixed = buf.GetStr(0, nSize, "ANSI")       
Free(buf)

Перекодирует строку из iso-8859-1 в ANSI. Должно и с другими кодировками работать.
AkulaBig wrote:
А вместо ProcessExecGetOutput что-то можно использовать?

Нет, насколько мне известно. Данные из консольного приложения (exiftool) должны как-то попасть в Autorun, ShellExec эту задачу не выполняет. ProcessExecGetOutput нормальный вариант, у него и ключ специальный есть для работы с кодовой страницей /C:nnnn. Говорю же: это exiftool тормозной Smile Там ведь целый перл разворачивается.
AkulaBig wrote:
Косяк именно на встроенной видюхе. На большом компе все отработало отлично.

Ну, странно. У меня как-раз после применения хука высветилась проблема, по крайней мере теперь я понял на что были жалобы. Ну, тут только Отцы-Системщики, наверное, смогут помочь — болванус электроиус как-то слабо вывозит.
 Hidden text

Больше склоняюсь к мысли, что это шутки маэстро такие от любителей поавтокликать по невидимым окнам триала Mr. Green
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 224, 225, 226
Page 226 of 226

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group