Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » WinRAR (часть 3)

Модерирует : gyra, Maz

Maz (27-08-2020 19:31): WinRAR (часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

gyra

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По вопросам лечения (кряки, патчи и т.д.), а также разблокировки архивов, обращаемся в «Варезник».
Отдельная тема по сборкам WinRAR
Предыдущие части темы: Часть 1 | Часть 2



Официальный русский сайт: win-rar.ru
Официальный e-mail разработчика WinRAR (писать на русском): dev@rarlab.com
 
Финальная английская версия: 5.91 x86 | x64 (29.06.2020)
Финальная русская версия:  5.91 x86 | x64 (29.06.2020)
 
Список изменений на английском языке
(на родном – смотрите файл WhatsNew.txt в дистрибутиве на вашем языке)
Скачать RAR для macOS, FreeBSD, Linux, Android можно здесь.

 
Скачать ранее вышедшие версии также можно с официального сайта.

Версия 3.62 (ru) с подарочным ключом (респект камраду elmorte)

Коллекция всех ранее выходивших версий WinRAR (1995-2020): скачать (253 МБ) [обновлено 30.03.2020]

вместо F.A.Q. || альтернативные архиваторы

Почему опять задерживается русская версия? А при русском разработчике на языке XXX уже давно есть. Не захламляйте тему подобными вопросами.

Кому не нравится новая тема оформления - скачайте с официального сайта rarlab.com (из раздела Themes) и установите себе WinRAR Classic theme by Francesco Indrio: Стандартная (48x36). Мелкие кнопки (24x24)

В теме активно отвечает на вопросы автор архиватора Евгений Рошал! Ситуация уникальная, прошу пользоваться. :)

Всего записей: 7932 | Зарегистр. 18-02-2006 | Отправлено: 12:00 14-12-2016 | Исправлено: Domin0, 13:37 26-08-2020
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
Сейчас выделил их и нажал F3.

У меня есть 2 папки и 150 файлов, я выделяю эти 2 папки, нажимаю F3 и вижу <Текущая папка>. ЧЯДНТ?

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 18:48 30-01-2019 | Исправлено: pikorembo, 21:37 30-01-2019
KT315E

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Баг? При распаковке нескольких архивов одновременно туда, где требуется повышение прав, запрос UAC выдаётся на каждый архив.
Хотелка. Не менять время изменения уже существующих папок на время из архива. Например, заархивирован один глубоковложенный файл с сохранением полного пути. При распаковке, папки по пути к файлу изменят время, что не требуется.

Всего записей: 733 | Зарегистр. 31-01-2006 | Отправлено: 19:24 30-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
У меня есть 2 папки и 150 файлов, я выделяю эти 2 папки, нажимаю F3 и вижу <Текущая папка>. ЧЯДНТ?  

Значит у вас их всего 2. "Выделенные папки подставляются, если ... мы выделили не все папки в текущей".
 
KT315E

Цитата:
Баг?

Фича. Повышение прав сейчас реализовано для распаковки одного архива. Передавать пачку архивов в elevated WinRAR оно не умеет, вот и вызывает в цикле.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 19:47 30-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
 
Что делать, когда в списке только одни папки и их много (появляется скроллинг)? Как перед тем, как вызвать окно поиска:
1) сбросить выделение, если свободного для клика пространства нет?
2) догадаться, что нужно нажать Ctrl+A (например, я не знал этого)?
 
В целях унификации поведения было бы логично при любых условиях задействовать по умолчанию <Текущая папка>. Эта логика простая и понятная, как в Проводнике. Гораздо проще открыть папку/архив и искать, чем что-то там сначала выделять.
 
В дополнение можно добавить пункт <Выделенные объекты> (включает в себя не только папки, но и архивы). Однако этот пункт пользователь должен выбрать самостоятельно, если хочет ограничить область поиска выделенными папками/архивами.
 
Преимуществом являлось бы отсутствие набора путей в крохотном поле (как там с длиной строки, кстати?). Вместо него — простая и понятная фраза (<Выделенные объекты>). И самое главное: никаких заморочек с предварительным подсчётом выделенных папок.

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 20:43 30-01-2019 | Исправлено: pikorembo, 21:13 30-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
Что делать, когда в списке только одни папки и их много (появляется скроллинг)? Как перед тем, как вызвать окно поиска:
1) сбросить выделение, если свободного для клика пространства нет?
2) догадаться, что нужно нажать Ctrl+A (например, я не знал этого)?  

Выбрать <current folder> из выпадающего списка, связанного с "disks and folders".

Цитата:
В целях унификации поведения было бы логично при любых условиях задействовать по умолчанию <Текущая папка>. Эта логика простая и понятная, как в Проводнике. Гораздо проще открыть папку/архив и искать, чем что-то там сначала выделять.  

Все хорошо, пока нам не надо искать в нескольких папках.

Цитата:
В дополнение можно добавить пункт <Выделенные объекты> (включает в себя не только папки, но и архивы). Однако этот пункт пользователь должен выбрать самостоятельно, если хочет ограничить область поиска выделенными папками/архивами.  

Это надо переделывать поиск. Сейчас эта команда не умеет искать в выделенных файлах. Только в папках.
 
Добавлено:

Цитата:
И самое главное: никаких заморочек с предварительным подсчётом выделенных папок.

Заморочки с подсчетом я уже убрал. Если выделена часть папок, показывает часть. Если выделены все, показывает <current folder>.
 
Добавлено:
pikorembo
Впрочем, подумаю насчет "Selected items" в выпадающем списке. Но тогда список будет нередактируемым. CBS_DROPDOWNLIST вместо CBS_DROPDOWN.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 21:56 30-01-2019 | Исправлено: EugeneRoshal, 22:22 30-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
Все хорошо, пока нам не надо искать в нескольких папках.

Давайте усложним:
1) если выделен один элемент, то используется <Текущая папка>;
2) если выделено несколько элементов, то используется <Выделенные элементы>.

Цитата:
Но тогда список будет нередактируемым.

Так даже лучше, всё равно он не юзабелен. Не надо будет целиться в стрелочку справа

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 23:25 30-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
Давайте усложним:
1) если выделен один элемент, то

Мы же хотели упростить, а, получается, что опять считаем папки.

Цитата:
Так даже лучше, всё равно он не юзабелен.

Выложил переделанную версию.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 00:39 31-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
Выложил переделанную версию.

Теперь работает гораздо предсказуемее. Спасибо
 
Ещё немного критики. Во время поиска появляется кнопка Cancel. Но действие "Cancel" предполагает закрытие окна (по крайней мере, так принято в Windows). Я всегда сомневаюсь, можно ли её нажимать, чтобы остановить поиск. Приходится всматриваться в другие кнопки, чтобы найти кнопку Stop, и только потом нажимать Cancel с надеждой на то, что список найденных файлов не исчезнет вместе с окном.
 
Также существует ненулевая вероятность, что во время нажатия кнопки Cancel она превратится в Close, и мы снова лишимся результатов поиска. Обычно при совмещённых кнопках учитывается тот факт, что мозг человека не успевает отреагировать на мгновенное изменение действия. После окончания поиска кнопку лучше заблокировать на ~500 мс, чтобы не получилось как с котом Шрёдингера
 
Во время поиска доступ к файлам часто ограничен (ACL, блокировка процессом и т.д.), и сообщения об ошибках попадают в лог "Diagnostic messages". При каждом таком сообщении издаётся звуковой сигнал, который через какое-то время начинает раздражать. Это особенно заметно, если поиск затягивается на десятки минут. Предлагаю привлекать внимание пользователя звуком только при появлении окна "Diagnostic messages".
 
Добавлено:
 
Выявился неприятный момент с вызовом Sleep(n > 0). Если закрыть только WinRAR, окно Help продолжает висеть на экране некоторое время. Может быть, скрывать его прямо перед вызовом Sleep()?

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 13:35 31-01-2019 | Исправлено: pikorembo, 15:58 31-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
Приходится всматриваться в другие кнопки, чтобы найти кнопку Stop

Боюсь, что со Stop люди уже будут искать Cancel, когда им надо именно отменить операцию. Не найдя, будут целиться в крестик в правом верхнем углу.

Цитата:
Я всегда сомневаюсь, можно ли её нажимать, чтобы остановить поиск.

На этот случай там и Pause есть - приостановить, посмотреть, запустить дальше.

Цитата:
Также существует ненулевая вероятность, что во время нажатия кнопки Cancel она превратится в Close, и мы снова лишимся результатов поиска.

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

Цитата:
При каждом таком сообщении издаётся звуковой сигнал, который через какое-то время начинает раздражать. Это особенно заметно, если поиск затягивается на десятки минут. Предлагаю привлекать внимание пользователя только при появлении окна "Diagnostic messages".  

Опять же, зависит от ситуации. Представьте, что человек делает многочасовой бэкап, сидит в соседней комнате, а на каждый писк прибегает посмотреть что пошло не так. Другое дело, что можно минимальные паузы между писками сделать немного побольше.

Цитата:
Выявился неприятный момент с вызовом Sleep(n > 0). Если закрыть только WinRAR, окно Help продолжает висеть на экране некоторое время. Может быть, скрывать его прямо перед вызовом Sleep()?

Я уже точно не помню, но оно ж, кажется, падало именно при попытке его скрыть? Я могу там Sleep(500) заменить на Sleep(200). Будет не так заметно, а от падений защитит в ~95% случаев.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 16:03 31-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
Не найдя, будут целиться в крестик в правом верхнем углу.

Что хочет пользователь, целясь в крестик? Прервать операцию (без закрытия окна) или отменить (с закрытием окна)? Крестик для этого и предназначен, чтобы всё отменить и закрыть. А кнопка Cancel делает совершенно другое: она всего лишь останавливает поиск. Значит, и название у неё должно быть соответствующее — Stop.

Цитата:
Но вероятность того, что мне надо просто отменить поиск, выше.

Для этого мы и страхуемся. Пользователь жмёт Cancel с мыслью "мне надо просто отменить поиск", а получается, что срабатывает Close, и все результаты поиска теряются. Непорядок.

Цитата:
человек делает многочасовой бэкап, сидит в соседней комнате

Прозвучал писк, он прибежал, прочитал сообщение(-я), принял решение и закрыл "Diagnostic messages". Слушает писки дальше. Если хочет бесшумный режим, то оставляет окно "Diagnostic messages" открытым, сообщения копятся, посмотрит их по завершении операции.

Цитата:
падало именно при попытке его скрыть?

Нет. Падало после HH_CLOSE_ALL, а я предлагаю использовать ShowWindow() перед Sleep().

Цитата:
Я могу там Sleep(500) заменить на Sleep(200).

В любом случае 500 мс многовато будет, завершения WinRAR могут ожидать другие процессы.

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 17:04 31-01-2019 | Исправлено: pikorembo, 07:58 01-02-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
А кнопка Cancel делает совершенно другое: она всего лишь останавливает поиск.  

Вопрос формулировок. Можно сказать так, а можно - "прерывает поиск и показывает результат". Раз прерывает, значит Cancel. "Останавливает" это, скорее, к Stop с возможностью Resume.

Цитата:
Значит, и название у неё должно быть соответствующее — Stop.

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

Цитата:
От этого мы и страхуемся. Пользователь жмёт Cancel с мыслью "мне надо просто отменить поиск", а получается, что срабатывает Close, и все результаты поиска теряются.  

Зачастую для этого Cancel и жмешь. Файл уже нашел или передумал искать, результаты не нужны, нужно нажать два раза на кнопку или Esc, чтобы закрыть окно. Задержка будет мешать.

Цитата:
Прозвучал писк, он прибежал, прочитал сообщение(-я), принял решение и закрыл "Diagnostic messages". Слушает писки дальше.  

Сомневаюсь, но может и можно попробовать. Будут жаловаться, верну.

Цитата:
Нет. Падало после HH_CLOSE_ALL, а я предлагаю использовать ShowWindow() перед Sleep().

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

Цитата:
В любом случае 500 мс многовато будет, завершения WinRAR могут ожидать другие процессы.

Пока сделал 200, там посмотрим, может еще уменьшу.
Выложил.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 18:43 31-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
ShowWindow это еще искать окно с хелпом.

Зачем искать? Нам же HtmlHelp() его handle возвращает.
 
Добавлено:
 
Погорячился. Там же ещё другие окна могут быть открыты помимо главного.
 
Добавлено:
 
В общем, решение такое:

Код:
if (!IsWindowVisible(HtmlHelpRetValue)) Sleep(200);

ShowWindow() не нужна.

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 18:59 31-01-2019 | Исправлено: pikorembo, 20:41 31-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
Зачем искать? Нам же HtmlHelp() его handle возвращает.

Может это окно давно закрыли. Да еще handle повторно использовали и выдали чему-нибудь другому Тогда для него сначала хотя бы IsWindow надо вызвать.

Цитата:
if (!IsWindowVisible(HtmlHelpRetValue)) Sleep(200);  

Спать, только если окно не видно? А если видно, оно разве не падает без Sleep?

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 20:57 31-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
Тогда для него сначала хотя бы IsWindow надо вызвать.

Только собирался написать об этом. Я думал, что у вы уже добавили такую проверку перед Sleep(). Не всегда же сон требуется.
 
Добавлено:

Цитата:
Спать, только если окно не видно? А если видно, оно разве не падает без Sleep?

Кто его знает. У меня оно успевает исчезнуть при вызове "Закрыть все окна". Костыль, без которого ещё хуже.

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 21:00 31-01-2019 | Исправлено: pikorembo, 21:14 31-01-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
У меня оно успевает исчезнуть при вызове "Закрыть все окна". Костыль, без которого ещё хуже.

HH_CLOSE_ALL я совсем убрал. Если не путаю, с ним у меня падало хоть со Sleep, хоть без.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 21:41 31-01-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal

Цитата:
HH_CLOSE_ALL я совсем убрал.

"Закрыть все окна" это не HH_CLOSE_ALL, а пункт в контекстном меню кнопки панели задач. При его вызове окно Help успевает исчезнуть. С помощью IsWindowVisible() можно точно определить необходимость вызова Sleep().
 
Есть одна проблема с функцией HtmlHelp(), точнее с возвращаемым значением:

Цитата:
NULL. In some cases, NULL indicates failure; in other cases, NULL indicates that the help window has not yet been created.

Думаю, что это не про наш случай. Но если предварительно проверять handle окна Help с помощью IsWindow(), то ничего страшного не будет.

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 07:49 01-02-2019 | Исправлено: pikorembo, 08:14 01-02-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo
Понял, выложил такой вариант. Спасибо за идею.
Тогда, наверное, можно и Sleep(500), так как вызываться будет только при необходимости.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 13:23 01-02-2019
pikorembo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EugeneRoshal
Нарыл ещё кое-что
 
Если вызвать WinRAR из командной строки с запросом SW_HIDE, то окно выполняемой операции всё равно отображается на экране. К слову, в других программах этот момент обязательно учитывается. SW_SHOWDEFAULT?
 
WinRAR не понимает пути типа \\?\... Например, при передаче имён файлов через командную строку или в файле-списке. Порой в силу технических причин невозможно отказаться от использования такого формата. Исправите?

Всего записей: 279 | Зарегистр. 29-01-2014 | Отправлено: 19:01 01-02-2019 | Исправлено: pikorembo, 19:04 01-02-2019
EugeneRoshal

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pikorembo

Цитата:
Если вызвать WinRAR из командной строки с запросом SW_HIDE, то окно выполняемой операции всё равно отображается на экране.

"start /min winrar.exe" отработал нормально, а SW_HIDE это уже что-то нештатное. Со спрятанным окном никто не обещал работать. В принципе для winrar.exe есть -ibck.

Цитата:
WinRAR не понимает пути типа \\?\... Например, при передаче имён файлов через командную строку или в файле-списке. Порой в силу технических причин невозможно отказаться от использования такого формата. Исправите?

Выложил, но проверял минимально. Вообще это больше к новым функциям относится, а не к исправлению ошибок.

Всего записей: 2239 | Зарегистр. 29-04-2013 | Отправлено: 20:27 01-02-2019
zilbertus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Del




Флуд

Всего записей: 549 | Зарегистр. 12-01-2018 | Отправлено: 21:03 01-02-2019 | Исправлено: zilbertus, 14:54 02-02-2019
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » WinRAR (часть 3)
Maz (27-08-2020 19:31): WinRAR (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru