Ru-Board.club
← Вернуться в раздел «Программы»

» WinRAR (часть 2)

Автор: EugeneRoshal
Дата сообщения: 06.04.2015 15:49
Ar0ma

Цитата:
Неужели я что-то напутал? Вроде видел такую ошибку в консольном окне.

Ошибка такая в RAR есть, но ожидания действий пользователя после нее нет.

Цитата:
Нельзя ли тогда добавить ключ -stop, чтобы rar.exe в случае любых ошибок гарантированно останавливался и не закрывался.

Не уверен в нужности. Это, скорее, для .bat файлов, а не командной строки, а там такая функция реализуется и без ключа:

rar a arcname
if errorlevel 1 goto error
...
goto :eof

:error
echo ERRORLEVEL %errorlevel%
pause
exit
Автор: Victor_VG
Дата сообщения: 06.04.2015 16:09
Ar0ma

Думаю, что тут проще использовать анализ кода возврата или запуск через %COMSPEC% /k т.к. это не сам rar закрывает окно, а CMD обработав событие вызова в rar ExitProcess() вызывает CloseWindow() и завершает сеанс консоли.
Посему тут есть два способа "борьбы с врагом", и оба просты до безобразия:

1) комстрока типа %COMSPEC% /k rar <command> <swith> <filelis> <arcname> - результат команда отработает, консоль сама не закроется и можно прочитать диагностику, окно закрываем вручную;
2) батник с анализом %ERRORLEVEL% к примеру такой:

@echo off
rar <command> <swith> <filelis> <arcname>
if NOT %ERRORLEVEL% 0 Pause


ну, тут один плюс - если всё в порядке, то консоль сама закроется...
Автор: Ar0ma
Дата сообщения: 06.04.2015 17:27
EugeneRoshal

Цитата:
Не уверен в нужности. Это, скорее, для .bat файлов, а не командной строки, а там такая функция реализуется и без ключа


Все равно мне кажется неправильно. Пользователь запускает rar.exe и ожидает что когда закрылось окно, архиватор отработал, а оказывается он не отработал, свалился с ошибкой, а окно закрылось.
Ключ -stop четко бы говорил что нужно останавливаться при ошибках. А писать bat для того чтобы поймать ошибку не совсем удобно.
Автор: Inoz2000
Дата сообщения: 06.04.2015 18:36
Используйте GUI
Автор: Victor_VG
Дата сообщения: 06.04.2015 19:11
Ar0ma

Используйте GUI вариант. Кто мешает? Для любого консольного приложения те ограничения что я описал выше будут всегда ибо таков принцип работы консоли:

консоль предназначена для пакетного выполнения входной очереди команд ОС, всё взаимодействие с оператором происходит через три стандартных I/O канала: stdin, stdout, stderr - программа читает команды из stdin, исполняет их и выводит результаты на stdout, а сообщения об ошибках на stderr и после завершения работы приложения его буфера stdin, stdout, stderr освобождаются, иных средств взаимодействия с оператором для консольных программ не предусмотрено. Пользователь должен сам использовать допустимые в среде консоли ОС средства для сохранения сообщений stderr к примеру путём его вывода в логи ошибок. За непосредственное взаимодействие с оператором отвечают оболочка (shell) и её командный процессор. Сеанс консоли может быть открыт как для выполнения одной, так и группы (пакета) команд, и если оператор специально не запустил текущий сеанс в режиме ожидания ручного ввода команды его завершения, то он автоматически завершится планировщиком задач ОС после выполнения последней команды из его входной очереди.

Эти ограничения расплата за меньшее время решения типовых задач (они не ждут решения оператора по каждому чиху) и значительно более низкие ресурсные требования таких программ. Зато их обычный недостаток это "сложная" командная строка и неинтерактивность работы. Ну так они и не предназначены для прямого управления оператором, то что тут всё нормально.

EugeneRoshal

Если человек чего-то не знает или не понимает, но хочет научится/знать/понимать то можно ему объяснить самые сложные вещи и передать самые сложные знания , иначе

- Говорят что они всё знают только люди со средним образованием - они не знают сколько ещё они не знают!© акад. АН СССР А.Н. Тихонов,

а тем кто демонстративно требует Я хочу - значит сделать так ибо Я хочу! вообще что либо говорить бесполезно ибо они никогда и никого не будут слушать...
Автор: Ar0ma
Дата сообщения: 06.04.2015 19:54

Цитата:
Используйте GUI


В данном случае речь идет об удобстве, пользоваться GUI не всегда удобно, особенно из под FAR, а писать каждый раз bat файл для ловли errorlevel, по-моему, странно.

Я люблю rar.exe, за то, что у него самая мощная командная строка, ни у кого такой нет (простите фанаты 7zip, но у командная строка у 7zip весьма куцая).
Я первый раз столкнулся с тем, то rar.exe отработал, а архива не создал, а когда он мне понадобился я был огорчен его отсутствием. Поскольку я не хотел бы повторения этой ситуации, я попросил автора добавить ключ, который бы не закрывал бы rar.exe в случае любых ошибок.

Решать нужен такой ключ или нет автору.



Добавлено:
Victor_VG

как это здорово, наехать на кого-нибудь, а в конце поставить смайлик, типа это шутка, нет оскорблений

Типа:
ты [имя] редкостный урод

видишь смайлик в конце? обижаться нечего, смайлик же...
Автор: GORA2
Дата сообщения: 06.04.2015 20:00
Ar0ma

Цитата:
Решать нужен такой ключ или нет автору.


Он уже ответил:

Цитата:
Не уверен в нужности.


Зачем продолжать уговоры!?
Смиритесь и напишите скрипт.
Автор: Victor_VG
Дата сообщения: 06.04.2015 20:36
Ar0ma

Если вы считаете что это относится лично к вам, то извините не хотел обидеть, но я имел ввиду именно разницу между обычными людьми и упрямцами не желающими никого слушать.

Я исходил из предположения что вы ошибочно ждёте от консольного приложения тех функций которые для него не свойственны и если я объяснил вам что-то слишком сложно, то давайте вместе разбираться как это работает ибо на самом деле это далеко не очевидные вещи и к примеру у нас в группе многие поняли для себя эту разницу только к концу пятого курса хотя и учились по специальности 0608 - ЭВМ, структуры, сети и системы одновременно работая на ВЦ программистами. Во многом эта штука похожа на четырёхмерный булев куб который нам в своё время привёл как пример простых, но не очевидных вещей преподаватель дискретной математики - трёхмерное тело мы легко себе представим, а вот четырёх уже нет ибо у него нет видимого аналога...
Автор: EugeneRoshal
Дата сообщения: 07.04.2015 11:49
Ar0ma

Цитата:
В данном случае речь идет об удобстве, пользоваться GUI не всегда удобно, особенно из под FAR, а писать каждый раз bat файл для ловли errorlevel, по-моему, странно.

А вы его из FAR в новом окне запускаете? По Shift+Enter? Мне любопытен сценарий использования такого ключа. Я все время запускаю RAR в FAR, но в той же консоли, поэтому результат не теряется.
Автор: Victor_VG
Дата сообщения: 07.04.2015 12:11
Ar0ma

Кстати, простите только сейчас обратил внимание - а почему бы вам не воспользоваться как оболочкой MultiArc? Да, стандартная сборка с PlugRing была рассчитана на старые ключи RAR, но я для себя когда-то перекомпировал фоматки rar.fmt и targz.fmt поправив там ключи. Можно попробовать что у вас выйдет - MultiArc-b196-x86_x64.7z собрано из последних исходников, нормально работает в Far3 (в т.ч. и в последних x86/х64 сборках Far 3.0 b4336 SVN r13107) с RAR5, только вызовите far:config и поправьте формата значение System.PluginMaxReadData на 524288 (по умолчанию 131072) иначе не будут опознаваться (МА их не откроет как архив) RAR5 SFX архивы RAR5, нужные unrar.dll (unrar64.dll) v5.21 там уже есть, так что можно распаковать плагин и пользоваться. Спасибо EugeneRoshal за подсказку - он мне когда-то подсказал что нужно увеличить данный параметр т.к. размер SFX модулей у RAR5 больше чем у старых версий, значения 128К хватает только для работы с SFX архивами форматов RAR14 - RAR29 (до v4.20 включительно), а с форматом RAR5 получим проблему - SFX архивы при дефолтном значении данного параметра не распознаются.
Автор: dandvd
Дата сообщения: 08.04.2015 13:41
EugeneRoshal,
а Вы можете добавить опцию "Закрывать WinRar клавишей Escape" или "Выход из WinRar клавишей Escape" ?
Т.е помимо стандартной комбинации Alt+F4 добавить закрытие окна по Escape.
Пара слов в "защиту" данного предложения: когда скачиваю файл из интернета, "качалка", при завершении скачивания,
предлагает его открыть.
Я обычно открываю, чтоб убедиться, что все хорошо скачалось или проверить, соответствует ли содержимое моим ожиданиям,
после этого WinRar закрывается.
Вот и хотелось бы упростить его закрытие...
Автор: EugeneRoshal
Дата сообщения: 08.04.2015 14:16
dandvd
Можно по Ctrl+W закрыть. Чуть удобнее, чем Alt+F4, и чуть стандартнее, чем Esc. Esc для закрытия приложения в Windows это слишком нестандартно.
Автор: dandvd
Дата сообщения: 08.04.2015 15:30
EugeneRoshal
годы работы с AkelPad и Lister'ом в TotalCommander сделали свое дело... привык ))
Да и просто удобно, например: курсор на *.pdf файл -> Enter, прочитал документ -> Esc

еще активно использую FastStone Image Viewer, Everything, locate32, PDF-XChange Viewer (местная сборка),
WinMerge, Unlocker, WinDjView, и AV Search - все они закрываются по Esc.
К списку можно добавить Beyond Compare.
Ad Muncher, AnVir Task Manager, uTorrent, KeePass - сворачиваются в трей, где они собственно и "живут".

на счет того, что это не стандартная комбинация Windоws, согласен,
и я так же вижу, что многие разработчики используют Esc
Автор: Victor_VG
Дата сообщения: 08.04.2015 16:32
dandvd

Нажатие клавиши ESC (Escape дословно переводится как побег) во всех ЭВМ ещё с 50-х годов 20 века когда только появились первые ОС трактуется как сигнал вычислительному комплексу "Отмена текущей операции" (кстати и в "голой" аппаратуре так же), а назначение на данную клавишу других функций, к примеру её трактовка как "Выход из выполняющейся задачи" это частный случай его трактовки конкретными людьми как "Если нажата клавиша Esc, то следует отменить текущую задачу..." т.е. завершить работу конкретной программы. Это с одной стороны удобно оператору - ткни пальцем в кнопку и отмени операцию, а с другой чревато ошибками при её произвольном нажатии, и потому ещё в самых первых ОС появившихся в конце 50-х люди учли накопившийся к тому времени опыт, в т.ч. и потери данных, и разделили две команды "Отменить текущую операцию" и "Завершить текущую задачу" на разные комбинации управляющих клавиш, а вторую чтобы снизить процент ошибок операторов специально назначили на комбинацию одновременно нажатых управляющих клавиш.

И даже если кто-то лично использует свой набор управляющих клавиш, то вполне возможно, что причиной этого стала неисправность клавиатуры на его ЭВМ в момент когда он свою программу придумывал - ну не нажимались у него иные клавиши, а Esc работала - использовал её, а после забыл причину и понеслась душа в рай.

Но это не повод заставлять всех равняться чьи-то личные пристрастия. Для сего дела существуют такие системы как программируемые трансляторы нажатия клавиш, да и вашу задачу можно решить иначе и красиво, и поверьте мне очень нестандартно - через планировщик заданий ОС (к примеру типа cron, nncron или встроенный в ОС).

Решение простое:

- в планировщике создаём задачу типа "Если запущен процесс <имя>И нажата клавиша Esc То завершить работу процесса <имя>" и всё, ОС сама завершит все запущенные копии бедолаги, но чтобы не потерять данные в других копиях нам бы стоило чуть уточнить задачу - "Если запущен процесс <имя> И выбран И нажата клавиша Esc То завершить работу выбранного процесса ..." да вот только с проверкой условия выбран придется подумать - а что считать состоянием выбран?
Автор: addhaloka
Дата сообщения: 08.04.2015 16:44
Victor_VG 15:32 08-04-2015
Цитата:
Решение простое:

По-моему, предложенное здесь, проще некуда. Проверил - работает.
Автор: Victor_VG
Дата сообщения: 08.04.2015 17:12
addhaloka

Но это правка бинарника, что не всегда применимо, я предложил иной вариант, ну а выбор за dandvd, но причин для её реализации в Rar я не вижу. Частный случай, одноразовая задача.
Автор: dandvd
Дата сообщения: 08.04.2015 17:20
Victor_VG
зачем усложнять?
если в программе, в настройках, будет чекбокс "Закрывать программу по ESC", снятый по умолчанию - это даст юзеру возможность выбора.
И по поводу планировщика - у меня его нету, выпилен, а ставить другой нет нужды.
Поэтому и обратился к автору программы, чтоб решение было самодостаточным, без лишних костылей.

addhaloka, да, подтверждаю - отличное решение, уже себе так сделал. Доволен до безобразия )))
но хотелось бы "официального" решения данной задачи
Вот и обратился к автору...

Подождем, что EugeneRoshal скажет.

Добавлено:
Victor_VG, не удивлюсь, если в новых сборках и репаках будет присутствовать лайфхак от Inoz2000
хотя что загадывать, время покажет, может действительно я один такой любитель Esc
Автор: Victor_VG
Дата сообщения: 08.04.2015 17:44
dandvd

Планировщик (начиная c Windows NT 3.1 вызывается командой at) и к вашему сожалению он встроен в ОС "из коробки" (любая мультизадачная ОС имеет его в своём ядре - иначе не возможно реализовать принцип мультизадачности), но вы упорно требуете реализации именно вашей хотелки, хотя выше EugeneRoshal уже однозначно ответил вам:

Цитата:
dandvd

Можно по Ctrl+W закрыть. Чуть удобнее, чем Alt+F4, и чуть стандартнее, чем Esc. Esc для закрытия приложения в Windows это слишком нестандартно.

только вот лично вас его ответ не устроил и вы ищите надуманные предлоги чтобы добиться именно её реализации упорно игнорируя последствия, что в принципе и кожухе не допустимо.
Автор: addhaloka
Дата сообщения: 08.04.2015 17:49
Victor_VG 16:12 08-04-2015
Цитата:
Но это правка бинарника, что не всегда применимо

Можно из исходника собирать.
Автор: Victor_VG
Дата сообщения: 08.04.2015 18:04
dandvd

Что касается:

Цитата:
FastStone Image Viewer, Everything, locate32, PDF-XChange Viewer (местная сборка),
WinMerge, Unlocker, WinDjView, и AV Search - все они закрываются по Esc.

FSIV при нажатии Esc на деле не закрывается, а просто задача закрывает интерфейсное окно оставляя в ОЗУ скрытый процесс ожидания вызова, то же самое делают Everything, locate32, Unlocker и многие другие программы построенные по модульному принципу - завершается сеанс взаимодействия с оператором через модуль интерфейса, но основой модуль продолжает работать до получения прямой команды на своё завершение, так что ваш довод не верен.

Ну и касательно того что "планировщик у вас выпилен" - отлично, вы нашли то место в коде ядра которое собственно и реализует его функции и удалили его? И ОС не рухнула, и задачи переключаются, и всё остальное работает без ошибок? Ну удалили вы один или несколько бинарников отвечающих за реализацию интерфейса с оператором, а каков эффект? Задачи стали считаться быстрее? Или вы смогли "выгрызть" несколько байт памяти для запуска любимой игрушки?

addhaloka

Нам-то -да, не трудно исходники поправить и скомпилить "под себя", а иным или не хватит знаний, или как в бородатом анекдоте про ленивого кота "- слышали как я намедни три дня кряду орал - сел на свои достоинства, да вот встать лень было!"© выйдет
Автор: ManHunter
Дата сообщения: 08.04.2015 18:11

Цитата:
не удивлюсь, если в новых сборках и репаках будет присутствовать лайфхак от Inoz2000

Еще как будет.
Автор: EugeneRoshal
Дата сообщения: 08.04.2015 18:24
dandvd

Цитата:
Подождем, что EugeneRoshal скажет.

Как тут уже заметили, Esc плох возможностью случайных срабатываний. Закрывали какой-нибудь диалог, были недостаточно расторопны и заодно закрыли сам WinRAR.

Цитата:
если в программе, в настройках, будет чекбокс "Закрывать программу по ESC", снятый по умолчанию - это даст юзеру возможность выбора.

Для опции надо, чтобы в ней было заинтересовано сколько-нибудь заметное количество пользователей. В случае с Esc я в этом не уверен.
Автор: dandvd
Дата сообщения: 08.04.2015 18:30
Victor_VG, при всем моем уважении к Вам, позвольте напомнить, что я обращался именно к EugeneRoshal.
а Вы, как то невзначай, начали давать мне советы что мне делать, уходя при этом от темы вопроса.
А вопрос был таким: может ли EugeneRoshal добавить в программу опцию закрытия по Esc?
Точного ответа Да или Нет я не получил, поэтому для меня этот вопрос остался открытым.

по поводу планировщика, вот скрин со ВСЕМИ имеющимися службами.
русским же языком написал, что весь хлам из винды выпилен и новый ставить не собираюсь.
и если Вы придумываете себе, что я ищу "надуманные предлоги", то ей Богу, это лишь Ваши домыслы.
Вы так рьяно бросились защищать EugeneRoshal, что невольно возникает вопрос - Вы его личный секретарь или состоите в команде разработчиков или это вообще Ваша программа?
Толерантнее надо быть, толерантнее ))) Не забывайте, что мнения и желания других людей могут отличаться от Ваших.
Вас же никто не "бьет по рукам", за то, что Вы используете FAR и "допиливаете" его под свои нужды, а не Проводник, например?
Вот и у меня есть СВОИ пожелания, о чем и веду диалог с автором программы.

Добавлено:
EugeneRoshal, хорошо, я Вас понял. Спасибо за диалог.
Автор: Betauser RC
Дата сообщения: 08.04.2015 18:36
EugeneRoshal
Небольшая недоработка в GUI вашей программы: в полях ввода Recovery record (в нескольких местах) невозможно ввести трёхзначное (100) число с клавиатуры.
Ещё стеснялся спросить: можете что-нибудь сделать с проплешинами в парольных диалогах? И выглядит некрасиво, и зазря заслоняет рабочее пространство.
Автор: GORA2
Дата сообщения: 08.04.2015 18:38
dandvd

Цитата:
о чем и веду диалог с автором программы


Все Вы говорите правильно, только автор Вам уже ответил, а Вы не унимаетесь и продолжаете... Это породило флуд который вынуждены читать все подписчики ветки, а им Ваши хотелки "до фонаря", пожалейте их, пожалуйста.
Автор: dandvd
Дата сообщения: 08.04.2015 18:44
Victor_VG,
Цитата:
Ну и касательно того что "планировщик у вас выпилен" - отлично, вы нашли то место в коде ядра которое собственно и реализует его функции и удалили его? И ОС не рухнула, и задачи переключаются, и всё остальное работает без ошибок? Ну удалили вы один или несколько бинарников отвечающих за реализацию интерфейса с оператором, а каков эффект? Задачи стали считаться быстрее? Или вы смогли "выгрызть" несколько байт памяти для запуска любимой игрушки?


ISO образ винды весит 83,7 мб. до установки драйверов винда в оперативке занимает около 40 мб
по скорости загрузки - стартует быстрее чем BIOS. А Вы говорите про несколько байт памяти
цитата автора сборки:
"Главное отличие от аналогов, то чем сборка отличается от всего подобного: Тут действительно убраны службы-системы,
а не отпилена голова от них, как это бывает в гейм-эдишен версиях. То есть процесс пере сборки коснулся самого нижнего уровня.
В частности это касается и железных основ, например, отсутствует драйвер intelppm.sys или сетевая служба пролинкованна
без аналоговых модулей. Отсутствие, означает не то, что файл вычеркнули из списка установки, а то, что он чисто выведен
из состава системы и ядра."

желающие потестить, найдут образ в теме VirtualBox, я там давал ссылки.
P.S. винда заточена под процессоры Intel, на AMD, без бубна, не встанет.
Автор: Victor_VG
Дата сообщения: 08.04.2015 19:39
dandvd

Свежо предание, да верится с трудом. Всё что вы описали это простите бред автора используемой вами "сборки" ОС ибо доступа к исходникам ОС у него нет, зато фантазия работает на славу. Я занимаюсь разработкой ЭВМ уже не один десяток лет и хорошо знаю о чём говорю ибо это моя профессия, а автор вашей "сборки" просто наговорил кучу умных слов которым вы поверили поскольку звучит приятно и верить хочется, хотя всё сказанное им редчайшая глупость место коей в Музее Нелепостей.

И GORA2 правильно сказал - хватит, ваше предложение отвергнуто, так что:

- Заходя в кабинет говорите "Здрасьти!", если вам ответят "Нет!" - сдерживайте страсти!

И на сём поставим в данном вопросе жирную точку. У нас у всех время не резиновое, да и молодость дефект проходящий, так что Аминь!
Автор: EugeneRoshal
Дата сообщения: 08.04.2015 20:59
Betauser RC

Цитата:
Небольшая недоработка в GUI вашей программы: в полях ввода Recovery record (в нескольких местах) невозможно ввести трёхзначное (100) число с клавиатуры.

Да, в 5.30 надо будет добавить там пространства.

Цитата:
Ещё стеснялся спросить: можете что-нибудь сделать с проплешинами в парольных диалогах? И выглядит некрасиво, и зазря заслоняет рабочее пространство.

Там ведь пустое место заполняется в зависимости от режима. Второе поле ввода пароля, имя файла, имя архива.
Автор: Benchmark
Дата сообщения: 08.04.2015 21:19
EugeneRoshal
В продолжение вопроса об эстетике - нет планов привести в чуть более аккуратный вид справку в консольном rar ? Если не до уровня консольного pkzip, то хотя бы примерно как у arj. А то вылетающую "простыню" с командами приходится редиректить в текстовый файл и уже смотреть там.
Автор: EugeneRoshal
Дата сообщения: 08.04.2015 21:52
Benchmark
Вариант pkzip с листанием экранов - тоже на любителя. По мне проще набрать 'rar|more' или правда средиректить в файл. Простыня с командами, может, не так эстетична, но для поиска команды, на мой взгляд, пожалуй, более удобна.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160

Предыдущая тема: Прога для поиска картинок в интернете.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.