Autorun
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Восьмая бета, только исправления ошибок.
Скачать
Скачать
Код: Выделить всё
- исправлены неправильные номера строк в сообщениях об ошибках
- исправлено падение при использовании == в сравнении
заметил еще один интересный глюк:
код из конфига:
код из wincmd.ini:
как видите, ключи в ini-файле стоят пустые, а в переменной RemoteAdminName по умолчанию стоит "Администратор"
теперь, при загрузке ТС, получаем это:
Скриншот
если удалить ключи из ini-файла, то всё работает:
Скриншот
что я делаю неправильно?, быть может если ключи пустые, то лучше чтобы плагин писал в переменной ключи по умолчанию?
и еще было бы неплохо установки ключей по умолчанию из переменной, например:
[mod="Avada"]Неформатные картинки заменены ссылками, текст преобразован в код. Читаем правила форума и впредь проверяем через предварительный просмотр результаты внедрения картинок. Также прошу обратить внимание, как на форуме принято оформлять фрагменты кода. И заодно отмечу, что читать посты при использовании в начале фраз заглавных букв значительно приятнее.[/mod]
код из конфига:
Код: Выделить всё
IniRead RemoteAdminName "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminName" "Администратор"
IniRead RemoteAdminPWD "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminPwd" "0"
SetEnv /EV COMMANDER_ADMINNAME "%RemoteAdminName%"
SetEnv /EV COMMANDER_ADMINPWD "%RemoteAdminPwd%"Код: Выделить всё
[RemoteAdministration]
RemoteAdminName=
RemoteAdminPwd=теперь, при загрузке ТС, получаем это:
Скриншот
если удалить ключи из ini-файла, то всё работает:
Скриншот
что я делаю неправильно?, быть может если ключи пустые, то лучше чтобы плагин писал в переменной ключи по умолчанию?
и еще было бы неплохо установки ключей по умолчанию из переменной, например:
Код: Выделить всё
IniRead RemoteAdminName "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminName" "%USERNAME%"KopBuH
Если ключ есть - он есть, неважно, какое у него значение. В данном случае есть ключ с пустым значением, следовательно, считываться должно оно.
Другое дело, что функция SetEnv не позволяет создавать переменные окружения с пустым значением, поскольку Windows не допускает создания пустых переменных окружения.
Однако сейчас и переменные не могут быть пустыми, поэтому и не создаются. Честно говоря, не помню, почему было сделано именно так, особого смысла в этом нет. Переделаю, тогда содержимое переменной можно будет проверить в условии на пустое значение:
Если ключ есть - он есть, неважно, какое у него значение. В данном случае есть ключ с пустым значением, следовательно, считываться должно оно.
Другое дело, что функция SetEnv не позволяет создавать переменные окружения с пустым значением, поскольку Windows не допускает создания пустых переменных окружения.
Однако сейчас и переменные не могут быть пустыми, поэтому и не создаются. Честно говоря, не помню, почему было сделано именно так, особого смысла в этом нет. Переделаю, тогда содержимое переменной можно будет проверить в условии на пустое значение:
Код: Выделить всё
If %RemoteAdminName% = "" Then
SetEnv /EV COMMANDER_ADMINNAME "Администратор"
Else
SetEnv /EV COMMANDER_ADMINNAME "%RemoteAdminName%"
EndIf
Последний раз редактировалось Loopback Чт ноя 15, 2012 14:17, всего редактировалось 1 раз.
заключать её надо, в соотствии с созданием выше внутренней переменной:Flasher писал(а):KopBuH
RemoteAdminName - это не внутренняя переменная, её заключать в % не надо. И, кстати, кавычки в командах вообще не нужны.
Код: Выделить всё
IniRead RemoteAdminName "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminName" "Администратор"
Код: Выделить всё
IniRead RemoteAdminName "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminName" "Администратор"
IniRead RemoteAdminPWD "%COMMANDER_INI%" "RemoteAdministration" "RemoteAdminPwd" "0"
SetEnv /EV COMMANDER_ADMINNAME "%RemoteAdminName%"
SetEnv /EV COMMANDER_ADMINPWD "%RemoteAdminPwd%"
или все таки я не прав?
Добавлено спустя 7 минут:
да, оно считывается. посколько при удалении ключа из ini-файла происходит подставка значений по умолчанию.Loopback писал(а):KopBuH
Если ключ есть - он есть, неважно, какое у него значение. В данном случае есть ключ с пустым значением, следовательно, считываться должно оно.
а можно сделать, что если значение пустое, то переменная создавалась со значением по умолчанию, а не с именем самой переменной?.Loopback писал(а): Другое дело, что функция SetEnv не позволяет создавать переменные с пустым значением, поскольку Windows не допускает создания пустых переменных окружения.
P.S.:
а можно в таком сравнении, которое вы указали выше, вместо конкретного "Администратор" использовать глобальную переменную, например %USERNAME%?
Можно все, но идеологически это неправильно. Set и SetEnv - это по-сути присваивание, а присваиваем мы что-то заранее известное. Для проверки есть условия.KopBuH писал(а):а можно сделать, что если значение пустое, то переменная создавалась со значением по умолчанию, а не с именем самой переменной?.
Разумеется, любые существующие переменные, внутренние или окружения.KopBuH писал(а):а можно в таком сравнении, которое вы указали выше, вместо конкретного "Администратор" использовать глобальную переменную, например %USERNAME%?
насколько знаю, читаем внутреннею переменную, а устанавливаем переменную окружения (внешнюю).Flasher писал(а):Loopback
Так в SetEnv читаем или устанавливаем?
Добавлено спустя 4 минуты:
всё так. если оставить без %, то получишь просто текст, а не содержание переменной. просто уже не стал спорить с Flasher.Loopback писал(а):KopBuH
Flasher
Насчет переменных правила просты: если переменная устанавливается (Set, SetEnv, IniRead), то ее имя пишется без %, во всех остальных местах, т.е. там где она читается - % обязательны.
Loopback
Как и значки, мои шрифты подвергаются частому редактированию. Со значками проще - изменил, а после обновил панель инструментов и вуаля. Шрифты же, загруженные плагином, доступны только для чтения. Чтобы их изменить, я делаю их копии, редактирую, далее из Проводника с закрытым TC произвожу замену. Есть ли способ выгрузить эти шрифты? Перезапуск TC их вернет. Шрифты задействованы в TC, но перед выгрузкой я могу сменить их на что-либо из стандартного набора.
Как и значки, мои шрифты подвергаются частому редактированию. Со значками проще - изменил, а после обновил панель инструментов и вуаля. Шрифты же, загруженные плагином, доступны только для чтения. Чтобы их изменить, я делаю их копии, редактирую, далее из Проводника с закрытым TC произвожу замену. Есть ли способ выгрузить эти шрифты? Перезапуск TC их вернет. Шрифты задействованы в TC, но перед выгрузкой я могу сменить их на что-либо из стандартного набора.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Внутренняя переменная является предопределённой либо устанавливается командой Set, чего мы не наблюдаем в примерах выше. Даже если взять такой примерKopBuH писал(а):насколько знаю, читаем внутреннею переменную, а устанавливаем переменную окружения (внешнюю).
если оставить без %, то получишь просто текст, а не содержание переменной. просто уже не стал спорить с Flasher
Код: Выделить всё
Set Ren "Переменная окружения"
SetEnv Perem %Ren%Не совсем правильно выразился: там где мы вводим имя переменной для записи - там без %, там где ее читаем - там с %.Flasher писал(а):Так в SetEnv читаем или устанавливаем?
Ты забыл ключ /EV. C ним будет значение.Flasher писал(а):записывается тот же текст %Ren%. И чего тут спорить?
Есть - я же их выгружаю при завершении работы плагина. Но как ты это предлагаешь сделать во время работы?ask-rus писал(а):Есть ли способ выгрузить эти шрифты?
Loopback
Странно, что программа для редактирования шрифтов не может сохранить измененный шрифт (привелегии админа экзешнику присваивал), загруженный плагином, а переименовать файл в TC можно легко. Я точно помню, что раньше TC выдавал ошибку, ссылаясь на доступность файла только для чтения. Возможно, тогда я запускал TC без прав администратора. Можешь у себя это проверить? Программа Type light, бесплатная.
Странно, что программа для редактирования шрифтов не может сохранить измененный шрифт (привелегии админа экзешнику присваивал), загруженный плагином, а переименовать файл в TC можно легко. Я точно помню, что раньше TC выдавал ошибку, ссылаясь на доступность файла только для чтения. Возможно, тогда я запускал TC без прав администратора. Можешь у себя это проверить? Программа Type light, бесплатная.
Значит, cm_UnloadPlugins должна помочь.Loopback писал(а):Есть - я же их выгружаю при завершении работы плагина.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица