| View previous topic :: View next topic |
| Author |
Message |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Sat Apr 04, 2026 22:52 Post subject: |
|
|
| Orion9 wrote: | | Надо проверить. Теоретически большой разницы не должно быть |
И это удивительно, что в действительности в Autorun не работает. Если хотите, можно прямо в моей сборке и проверить. Я сейчас закончил скрипт на au3. Все получилось. Осталось причесать все. Если будете на моей сборке тестить, напишите. Я подготовлю сборку, подключу все нужное.
| Orion9 wrote: | | вопросы только к Loopback. |
Дак нет его. Конечно очень хотелось-бы подключить его к решению проблемы. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1055
|
(Separately) Posted: Sun Apr 05, 2026 12:25 Post subject: |
|
|
| AkulaBig wrote: | | Если будете на моей сборке тестить, напишите. |
Нет у меня, к сожалению, сейчас такой возможности. Скорее всего придется совсем забыть о ТС на какое-то время, пока не решу все проблемы. Надеюсь, Loopback все же вернется и сделает финальную версию плагина или хотя бы очередную бету с последним функционалом WM_USER+50, который появился в новом ТС.
P.S. Вы, наверное, пропусти мои вчерашние ПМ. Если их сразу пропустить, напоминаний больше не будет (недостаток здешнего форума). Mrak_Tlen вам сообщение тоже висит в исходящих (не старое, а новое) |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Sun Apr 05, 2026 13:00 Post subject: |
|
|
| Orion9 wrote: | | Вы, наверное, пропусти мои вчерашние ПМ. |
Ответил.
| Orion9 wrote: | | Нет у меня, к сожалению, сейчас такой возможности. |
Ну и ладно. Будет время и интерес, сообщите. Мне-то сейчас все ясно. Причесываю новые пользовательские колонки с доками. Все работает. Да и тестировать с Autorun можно. Весь код в сборке есть. Просто самому подключать модули, создавать колонки.
Жалко, что ни автора, ни вас не будет какое-то время. Ну удачи вам в ваших делах. |
|
| Back to top |
|
 |
yahuu
Joined: 22 Jun 2023 Posts: 40
|
(Separately) Posted: Sun Apr 12, 2026 18:18 Post subject: |
|
|
| Функция FileDelete в 64-битной версии TC приводит к краху и завершению работы TC. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Sun Apr 12, 2026 20:11 Post subject: |
|
|
yahuu
Подтверждаю. |
|
| Back to top |
|
 |
ZiabrevLV
Joined: 15 Sep 2022 Posts: 8
|
(Separately) Posted: Tue Apr 14, 2026 13:34 Post subject: |
|
|
Прошу помочь с командой:
| Code: |
#Переключение значков файловых панелей
RegisterCommand 67001 "SwitchIcons"
Func SwitchIcons(lParam)
Local sIconLib
#Проверка наличия ключа IconLib в секции [Configuration] файла wincmd.ini
IniRead sIconLib %COMMANDER_INI% "Configuration "IconLib" ""
If StrPossIconLib, "") Then
#Поквзывает собственные значки ТС
IniWrite %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_EXE%"
Else
#Поквзывает аматерные значки - Fileicons.dll
iniWrite %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_PATH%\Fileicons.dll"
EndIf
#Обновляетм значки файловых панелей
CommandExec cm_ReloadFileIcons
EndFunc
|
Не работает - ошибка If StrPossIconLib, "" - параметр не определён.
Требуется поправить. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Tue Apr 14, 2026 19:24 Post subject: |
|
|
If StrPossIconLib = "" Then или If StrPossIconLib <> ""
А вообще у меня такой модуль давно есть. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1055
|
(Separately) Posted: Wed Apr 15, 2026 00:12 Post subject: |
|
|
| yahuu wrote: | | Функция FileDelete в 64-битной версии TC приводит к краху и завершению работы TC. |
Да, было замечено.
Можно использовать ShellExec
| Code: | ShellExec /SW_HIDE /WAIT:2000 %COMSPEC% "/c del /f /q ""%COMMANDER_PATH%\temp.txt""" |
Или функцию сделать
| Code: | Func FileDeleteShellExec(Target)
If Not FileExist(Target) Then Return 0
ShellExec("~/SW_HIDE /WAIT:2000", COMSPEC, '/c del /q "' & Target & '"')
If FileExist(Target) Then Return -1
Return 1
EndFunc |
| Code: | Local sTarget = COMMANDER_PATH & '\temp.txt'
If FileDeleteShellExec(sTarget) = -1 Then MsgBox("Error deleting " & sTarget)
|
| ZiabrevLV wrote: | | Не работает - ошибка If StrPossIconLib, "" - параметр не определён. |
Похоже, что скобка потерялась
| Code: | If StrPos(sIconLib, "") Then |
Хотя пустую строку можно сравнивнить If sIconLib = "", но если следовать логике функции , должно быть, наверное, так
| Code: | If StrPos(sIconLib, "Fileicons.dll") Then |
Значение ключа в ini будет каждый раз меняться. |
|
| Back to top |
|
 |
ZiabrevLV
Joined: 15 Sep 2022 Posts: 8
|
(Separately) Posted: Wed Apr 15, 2026 01:15 Post subject: |
|
|
AkulaBig
Я смотрел, там нумерация пришита.
Orion9
Да,так работает. Спасибо.
Только пишет в инишнике вместо переменной %COMMANDER_PATH%,
IconLib=абсолютный путь\Fileicons.dll, как-то можно и это поправить? |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Wed Apr 15, 2026 07:26 Post subject: |
|
|
| Orion9 wrote: | | Похоже, что скобка потерялась |
Ну вы волшебник. Догадаться, что это функция StrPos, это высший пилотаж
Я тут за время вашего отсутствия такого накодил с ExifTool. И решил еще раз попробовать через Autorun. Но без использования ProcessExecGetOutput. Через ShellExec, выводящий результат в буфер. Вдруг такой вариант будет работать приемлемо по скорости. И как всегда встрял с кавычками. На au3 кавычки смог правильно поставить, на vbs. А на Autorun сколько бьюсь, не получается. Прошу помощи:
| Code: |
ShellExec("~/SW_HIDE", COMSPEC, '/c ' & util_ET & param & FileName & ' | clip')
|
Вот такая запись работает с путями без пробелов. Понятно, что надо FileName взять в кавычки. Но не получается. В vbs прекрасно работает:
| Code: |
objShell.Run "%COMSPEC% /c " & chr(34) & chr(34) & program & chr(34) & param & chr(34) & filename & chr(34) & " | clip" & chr(34), 0, True
|
|
|
| Back to top |
|
 |
ZiabrevLV
Joined: 15 Sep 2022 Posts: 8
|
(Separately) Posted: Wed Apr 15, 2026 09:15 Post subject: |
|
|
Увидел:
/EV- В командной записи отключает использование переменных и переменных окружения в параметре value.
/R Функция будет учитывать наличие ключа RedirectSection в заданной секции и ключа AlternateUserIni в секции Configuration.
Всё работает.
Всем спасибо. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Wed Apr 15, 2026 11:09 Post subject: |
|
|
Orion9
Ах тыж, блин. Сегодня совершенно случайно добавил /WAIT и все заработало. И все перестало шевелиться. А с путями без пробела в буфер заносилось без /WAIT. Похоже как-раз ProcessExecGetOutput и добавляет сам /WAIT. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1055
|
(Separately) Posted: Wed Apr 15, 2026 13:33 Post subject: |
|
|
| ZiabrevLV wrote: | Увидел:
/EV- В командной записи отключает использование переменных и переменных окружения в параметре value. |
Так и есть. В командной записи переменные окружения раскрываются по умолчанию. Чтобы этого не происходило, необходимо использовать ключ /EV-, если он поддерживается. В функциональной записи все наоборот. Переменные окружения никогда не раскрываются, строка передается в функцию как есть. Если взять ваш пример, то две одинаковые записи будут вести себя по-разному
| Code: | IniWrite %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_EXE%" |
| Code: | IniWrite(COMMANDER_INI, "Configuration", "IconLib", "%COMMANDER_EXE%") |
В первом случае переменная раскроется, во втором случае нет.
[Важно] Если необходимо раскрыть переменную окружения в функциональной записи, нужно использовать Set(), это единственный предусмотренный для этого способ
| Code: | IniWrite(COMMANDER_INI, "Configuration", "IconLib", Set("%COMMANDER_EXE%")) |
| AkulaBig wrote: | | Но без использования ProcessExecGetOutput. Через ShellExec, выводящий результат в буфер. Вдруг такой вариант будет работать приемлемо по скорости. |
Если такой вариант быстрее ProcessExecGetOutput, то, вероятно, есть проблемы в механизмах внутренней реализации. Сам по себе WinScriptAdv + AutoIt не должен выигрывать у Autorun, поскольку AutoIt.exe запускается каждый раз с новым скриптом, что очень медленно и накладно. Если Autorun действительно проигрывает в скорости, хотелось бы услышать от автора причины этого.
| AkulaBig wrote: | | А на Autorun сколько бьюсь, не получается. Прошу помощи: |
Вы уже вставляли кавычки здесь правильно. Какая может быть разница
| Code: | ShellExec("~/SW_HIDE", COMSPEC, '/c ' & util_ET & param & '"' & FileName & '"' & ' | clip') |
Просто имя файла должно быть в кавычках, да и все. |
|
| Back to top |
|
 |
ZiabrevLV
Joined: 15 Sep 2022 Posts: 8
|
(Separately) Posted: Wed Apr 15, 2026 14:12 Post subject: |
|
|
Orion9
У меня сейчас так:
| Code: |
IniWrite /R /EV- %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_EXE%"
Else
iniWrite /R /EV- %COMMANDER_INI% "Configuration" "IconLib" "%COMMANDER_PATH%\Fileicons.dll"
|
Так же записывается в wincmd.ini.
И всё работает. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 532
|
(Separately) Posted: Wed Apr 15, 2026 16:05 Post subject: |
|
|
| Orion9 wrote: | | Вы уже вставляли кавычки здесь правильно. Какая может быть разница |
Оказалось, что проблема намного сложнее. Я выше описал. Вся проблема была в /WAIT. С ней и с буфером обмена проблем нет. Это был мой следующий вопрос. Не хотел сразу все в кучу валить. Вместо /WAIT работает Sleep(), но не менее Sleep(500). Что совершенно не решает проблему. Панели ТС при этом практически перестают двигаться, а перед выводом инфы несколько секунд пауза. Зависит от количества файлов.
| Orion9 wrote: | | Если такой вариант быстрее ProcessExecGetOutput, то, вероятно, есть проблемы в механизмах внутренней реализации. |
Да не. ProcessExecGetOutput не причем. Я проверил все варианты с Autorun. ProcessExecGetOutput, Plugin, uwdx. Везде одинаково. Думал через ShellExec заработает. Видимо все-же и в скриптах какая-то задержка есть, они не стремительно быстро работают, как плагин ExifToolWDX. Опять-же нельзя быть уверенным, что плагин не снизит скорость, если ему придется русскую перекодировку делать. |
|
| Back to top |
|
 |
|
|
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
|