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 ... , 227, 228, 229  Next
 
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: 534

Post (Separately) Posted: Sat Apr 04, 2026 22:52    Post subject: Reply with quote

Orion9 wrote:
Надо проверить. Теоретически большой разницы не должно быть

И это удивительно, что в действительности в Autorun не работает. Если хотите, можно прямо в моей сборке и проверить. Я сейчас закончил скрипт на au3. Все получилось. Осталось причесать все. Если будете на моей сборке тестить, напишите. Я подготовлю сборку, подключу все нужное.
Orion9 wrote:
вопросы только к Loopback.

Дак нет его. Конечно очень хотелось-бы подключить его к решению проблемы.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1057

Post (Separately) Posted: Sun Apr 05, 2026 12:25    Post subject: Reply with quote

AkulaBig wrote:
Если будете на моей сборке тестить, напишите.

Нет у меня, к сожалению, сейчас такой возможности. Скорее всего придется совсем забыть о ТС на какое-то время, пока не решу все проблемы. Надеюсь, Loopback все же вернется и сделает финальную версию плагина или хотя бы очередную бету с последним функционалом WM_USER+50, который появился в новом ТС.

P.S. Вы, наверное, пропусти мои вчерашние ПМ. Если их сразу пропустить, напоминаний больше не будет (недостаток здешнего форума). Mrak_Tlen вам сообщение тоже висит в исходящих (не старое, а новое)
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Sun Apr 05, 2026 13:00    Post subject: Reply with quote

Orion9 wrote:
Вы, наверное, пропусти мои вчерашние ПМ.

Ответил.
Orion9 wrote:
Нет у меня, к сожалению, сейчас такой возможности.

Ну и ладно. Будет время и интерес, сообщите. Мне-то сейчас все ясно. Причесываю новые пользовательские колонки с доками. Все работает. Да и тестировать с Autorun можно. Весь код в сборке есть. Просто самому подключать модули, создавать колонки.
Жалко, что ни автора, ни вас не будет какое-то время. Ну удачи вам в ваших делах.
Back to top
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 40

Post (Separately) Posted: Sun Apr 12, 2026 18:18    Post subject: Reply with quote

Функция FileDelete в 64-битной версии TC приводит к краху и завершению работы TC.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Sun Apr 12, 2026 20:11    Post subject: Reply with quote

yahuu
Подтверждаю.
Back to top
View user's profile Send private message
ZiabrevLV



Joined: 15 Sep 2022
Posts: 8

Post (Separately) Posted: Tue Apr 14, 2026 13:34    Post subject: Reply with quote

Прошу помочь с командой:

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
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Tue Apr 14, 2026 19:24    Post subject: Reply with quote

If StrPossIconLib = "" Then или If StrPossIconLib <> ""
А вообще у меня такой модуль давно есть.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1057

Post (Separately) Posted: Wed Apr 15, 2026 00:12    Post subject: Reply with quote

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
View user's profile Send private message
ZiabrevLV



Joined: 15 Sep 2022
Posts: 8

Post (Separately) Posted: Wed Apr 15, 2026 01:15    Post subject: Reply with quote

AkulaBig
Я смотрел, там нумерация пришита.

Orion9
Да,так работает. Спасибо.
Только пишет в инишнике вместо переменной %COMMANDER_PATH%,
IconLib=абсолютный путь\Fileicons.dll, как-то можно и это поправить?
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Wed Apr 15, 2026 07:26    Post subject: Reply with quote

Orion9 wrote:
Похоже, что скобка потерялась

Ну вы волшебник. Догадаться, что это функция StrPos, это высший пилотаж Smile
Я тут за время вашего отсутствия такого накодил с 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
View user's profile Send private message
ZiabrevLV



Joined: 15 Sep 2022
Posts: 8

Post (Separately) Posted: Wed Apr 15, 2026 09:15    Post subject: Reply with quote

Увидел:
/EV- В командной записи отключает использование переменных и переменных окружения в параметре value.
/R Функция будет учитывать наличие ключа RedirectSection в заданной секции и ключа AlternateUserIni в секции Configuration.

Всё работает.
Всем спасибо.
Back to top
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Wed Apr 15, 2026 11:09    Post subject: Reply with quote

Orion9
Ах тыж, блин. Сегодня совершенно случайно добавил /WAIT и все заработало. И все перестало шевелиться. А с путями без пробела в буфер заносилось без /WAIT. Похоже как-раз ProcessExecGetOutput и добавляет сам /WAIT.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1057

Post (Separately) Posted: Wed Apr 15, 2026 13:33    Post subject: Reply with quote

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
View user's profile Send private message
ZiabrevLV



Joined: 15 Sep 2022
Posts: 8

Post (Separately) Posted: Wed Apr 15, 2026 14:12    Post subject: Reply with quote

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
View user's profile Send private message
AkulaBig



Joined: 03 Dec 2008
Posts: 534

Post (Separately) Posted: Wed Apr 15, 2026 16:05    Post subject: Reply with quote

Orion9 wrote:
Вы уже вставляли кавычки здесь правильно. Какая может быть разница

Оказалось, что проблема намного сложнее. Я выше описал. Вся проблема была в /WAIT. С ней и с буфером обмена проблем нет. Это был мой следующий вопрос. Не хотел сразу все в кучу валить. Вместо /WAIT работает Sleep(), но не менее Sleep(500). Что совершенно не решает проблему. Панели ТС при этом практически перестают двигаться, а перед выводом инфы несколько секунд пауза. Зависит от количества файлов.
Orion9 wrote:
Если такой вариант быстрее ProcessExecGetOutput, то, вероятно, есть проблемы в механизмах внутренней реализации.

Да не. ProcessExecGetOutput не причем. Я проверил все варианты с Autorun. ProcessExecGetOutput, Plugin, uwdx. Везде одинаково. Думал через ShellExec заработает. Видимо все-же и в скриптах какая-то задержка есть, они не стремительно быстро работают, как плагин ExifToolWDX. Опять-же нельзя быть уверенным, что плагин не снизит скорость, если ему придется русскую перекодировку делать.
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 ... , 227, 228, 229  Next
Page 228 of 229

 
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