Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

KopBuH писал(а):по идее, функция ProcessExecGetOutput запускает консольную программу, и выдает в переменную результат её работы, то есть её вывод.
Необязательно консольную. Вопрос не в том, как получать переменную, вопрос в том, как и где её применять. Т.е. осмысленность создания псевдопеременной должна быть.
Loopback писал(а):Получится пустая переменная. Ее можно проверить в условии как Var = "".
Ну, ниже уже ответили, я, собственно, об этом же. Не предусмотрены пока пустые кавычки.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH писал(а):а вот как бы не так:
Flasher писал(а):Не предусмотрены пока пустые кавычки.
Странно, совершенно точно проверял такой сценарий, и он работал. А сейчас выдает ошибку. Буду смотреть.

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

Попробуйте тестовую версию. Пустые значения должны работать.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Порядок.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

но теперь наблюдаю следующее:
Win8 x64, TotalCommander 32bit, запуск ТС происходит без тулбаров:
Скриншот
хотя если зайти в настройку тулбаров, там стоит основной тулбар, стоит нажать "ОК" - и тулбар нарисуется :(
тестовая версия плагина ведь под 32 бита, поэтому запускаю ТС x64 - всё работает.
[mod="Avada"]Внедрять в сообщения картинки такой ширины запрещено правилами форума. Выношу замечание и заменяю на ссылку.[/mod]

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

при закрытии ТС вылезло:
Изображение
(вылазиет не всегда :( )

строки конфига с 201 по 204:
If %WLanProfile% = Unknown Then
ElseIf %WLanDeleteProfile% = 1 Then
ShellExec /EV /SW_HIDE 'netsh.exe' 'wlan delete profile name="%WLanProfile%"'
EndIf

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

изменил конфиг:
If %WLanProfile% = "" Then
теперь при выходе:
Изображение

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

установка переменной происходит так:
IniRead WLanProfile "%COMMANDER_PATH%\wincmd.ini" "WLan" "WLanProfile" ""
код из wincmd.ini:

Код: Выделить всё

WLanProfile=
Добавлено спустя 3 минуты:

P.S. строки с 201-204 находятся в блоке выполнения при выходе, после комментария Pragma AutorunFinalizeSection
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH писал(а):Win8 x64, TotalCommander 32bit, запуск ТС происходит без тулбаров:
В этой версии не менялось ничего, кроме обработки кавычек в условиях. Т.е. если у тебя тулбары как-то завязаны на условия в Autorun, нужно проверить эти условия, возможно то, что раньше работало (неправильно), сейчас перестало.
KopBuH писал(а):при закрытии ТС вылезло:
Да, странное что-то. Эта ошибка вызывается только в случае, если в начале строки находится текст, который не может быть обработан. Т.е. не комментарий, не команда и не условие. Значит, одна из строк содержит символ "d". Поскольку вряд ли ты это не проверил, единственная мысль, которая пока приходит, что я что-то накосячил с чтением скрипта из файла или перекодированием, в результате чего в буфере появляются левые символы.

Кстати, а скрипт в какой кодировке?
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

кодировка конфига - ANSI
а как их проверять теперь, условия то? я ж не знаю, что изменилось в их механизме :(
тулбары привязаны к переменной %commander_arch% и %commander_lang%. переменные нормально создаются, и содержат нужные значения:
Изображение

удалил все лишние комментарии из конфига - тулбары начали грузится.
но ошибка при выходе не исчезла, и всегда ругается на последную строку конфига.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH писал(а):удалил все лишние комментарии из конфига - тулбары начали грузится.
Ну, пока не знаю, что тут могло быть. Надеюсь, удастся повторить достоверно.
KopBuH писал(а):но ошибка при выходе не исчезла, и всегда ругается на последную строку конфига.
Раз всегда - уже хорошо. Попробуй новую версию по той же ссылке.
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

в 32битной версии ошибка вроде исчезла.
можешь откомпилить x64?
Последний раз редактировалось KopBuH Ср янв 02, 2013 17:23, всего редактировалось 2 раза.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH
Конечно, та же ссылка.
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

сообщения об ошибке исчезли в обоих версиях.

P.S.: глюк с загрузкой тулбаров не исчез. тулбар иногда не подгружается. а так - грузится.
сейчас просто еще раз запустил - не загрузился. загрузил вручную, нажав ОК в настройке тулабара, вышел из ТС, открыл ТС - тулбар загрузился.
код из wincmd.ini:

Код: Выделить всё

Buttonbar=%commander_path%\Configs\wcmd%commander_arch%_%commander_lang%.BAR
переменные загруженны нормальном, значения в них есть.

наблюдаю еще такое:
код из конфига:

Код: Выделить всё

IniRead OfflineSystemDir "%COMMANDER_PATH%\wincmd.ini" "OFFLINESYSTEM" "OfflineSystemDir" "C:\Windows"
SetEnv /EV COMMANDER_OFFLINESYSTEM "%OfflineSystemDir%"
ключ в ini файле стоит пустой.
при запуске плагин сообщает, что нужно установить имя переменной.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH писал(а):сейчас просто еще раз запустил - не загрузился. загрузил вручную, нажав ОК в настройке тулабара, вышел из ТС, открыл ТС - тулбар загрузился.
Кстати, возникла такая мысль: поскольку команды Autorun работают в отдельном потоке, может быть возникает ситуация, когда Тотал загружает меню до того, как Autorun успевает присвоить переменные?

Это может быть связано, например, с командой получения SID, поскольку скрипт выполняется достаточно медленно. Попробуй ее перенести в самый конец секции загрузки.
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

а с этим как быть?
код из конфига:

Код: Выделить всё

IniRead OfflineSystemDir "%COMMANDER_PATH%\wincmd.ini" "OFFLINESYSTEM" "OfflineSystemDir" "C:\Windows" 
SetEnv /EV COMMANDER_OFFLINESYSTEM "%OfflineSystemDir%" 
ключ в ini файле стоит пустой.
при запуске плагин сообщает, что нужно установить имя переменной.
или нужно каждый раз создавать условие, если ключ и в ini файле будет пустой?.

P.S.:
оптимизировал код конфига, с тулбарами пока все вроде нормально.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH
Вообще-то да, сейчас посмотрел повнимательнее - переменная окружения таки может быть пустой. Ее удаление происходит не при присвоении пустой строки, а при присвоении null. Наверно, смутил еше плагин Environment, не позволяющий сохранить пустую строку. Убираем.

С тулбарами что-нибудь прояснилось?
Аватара пользователя
KopBuH
Сообщения: 127
Зарегистрирован: Пт июл 02, 2010 09:21
Откуда: Tashkent, Uzbekistan

Сообщение KopBuH »

оптимизировал код конфига, с тулбарами вроде все пока нормально.
скажешь потом, что будем делать, если ключ будет пустой, но значение по умолчанию должно быть не пустым.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

KopBuH писал(а):скажешь потом, что будем делать, если ключ будет пустой, но значение по умолчанию должно быть не пустым.
Проверять в условии, что же еще?
Ответить