coolwolf0: (Default)
coolwolf0 ([personal profile] coolwolf0) wrote2020-05-06 09:17 pm

Не было счастья, да несчастье помогло

Как я уже упоминал, на моём рабочем компе после очередного обновления винды перестали работать все "самодельные" ассоциации приложений по расширению файла. Вот такой лес, без деревьев. Офисные - пожальте, а всякие VNC, Пайтон, и медиафайлы - пошли на мороз. Хорошо хоть картинки через Пикасу открываются.

Погоревал я, и ... накатал скриптик. Ясное дело, работает он только из командной строки FAR, зато как работает! Просто загляденье. Итак, чтобы открыть автоматически ассоциированную программу надо в командной строке добавить имя бат-файла (для скорости названного AA.BAT) и закинуть ему через Ctrl+Enter файл в качестве аргумента. Всё, батничек вызывает через виндовую команду START интерпретатор Пайтона (специальную не-консольную версию) и он спокойненько открывает файл при помощи расписанного в собственной конфигурации приложения, будь то GIMP, MediaMonkey, SumatraPDF или VLC. Пара часов сидения за компом, и проблема решена, причём теперь я сам решаю, какое действие будет по умолчанию (опционально можно добавлять альтернативные действия, например "редактировать" или "распечатать").

Прикольно, но мне удалось даже решить проблему выдачи сообщений об ошибке. Я не стал чикаться с Tk под Пайтоном (технически это не сложно, но бессмысленно городить приложение ради окошка с сообщением об ошибке). Просто использовал универсальный "швейцарский нож виндовой автоматизации" - nircmd. Простой израильский парень Нир Сойфер объединил все самые часто используемые действия в сценариях работы с виндой в один экзешник. Просто прочитайте прилагаемый к нему хелп-файл и вы сходу начнёте выделывать всякие крутые штучки, не вдаваясь в хитрости программирования. У меня, например, на большом домашнем компьютере при помощи этой приблуды сделана иконка "перейти в спящий режим". Короче, будьте проще, и проблемы сами не захотят к вам приставать.

А остальные приложения я вообще положил в так называемую "панель" рядом с часиками виндовса. Просто добавил панельку правым кликом, назначив некую папочку в качестве контейнера, а потом в эту папочку накидал ярлыков нужных программ. Советую, очень удобно и работает на всех виндах.

Ну и чтобы вы не скучали, расскажу ещё одну байку, но для баланса - из мира Линуксов. ВПС получил как-то задачу: научить систему распаковывать архивы на экзотической платформе (Винда ARM64). Решение было простым - использовать пайтоновскую библиотеку, которая распаковывает хоть чёрта лысого, независимо от операционки и типа процессора. И вот, через месяц, у линуксовых групп начались проблемы: тот самый скрипт падает на распаковке архива. Что за ёперный балет, подумал я, - у всех работает, а у них - падает. Начал копать, посмотрел сообщение об ошибке и о...бомлел: архив содержал некорректные симлинки! Открываю его через less - действительно сплошные линки на самого себя, кому же такое понравится? Впрочем, штатный tar раскрывал такой архив без проблем. Пришлось искать виноватых и наказывать непричастных. Оказалось, что при создании архива tar получил очень противоречивые аргументы - одна и та же папочка упоминалась дважды. Что же сделал этот *** умник? Создал внутри архива линки на самих себя!!! Реально, попробуйте запаковать через tar директорию и тут же вместе с ней - её поддиректорию. Получите того самого монстра. И пусть на распаковке падал только старый Пайтон2, всё равно, история не из приятных.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting