Войти

Показать полную графическую версию : [решено] Expand. makecab, modifype с графическим интерфейсом


Страниц : 1 [2] 3

Nun-Nun
29-10-2010, 14:55
tehnik_srs,

Попробовал в действии, есть несколько замечаний:

1) При использовании команды "Очистить всё" необходимо очищать только рабочие папки ExMakeMod-а, т.е. папки Expand, Makecab и CHECK_SUMM, а не всю пользовательскую папку! А то я по обыкновению для эксперимента выбрал системную папку Temp, где находилось несколько рабочих файлов и подпапок и никак не ожидал, что ExMakeMod при использовании команды "Очистить всё" попытается очистить всю системную папку Temp ! :o Я чуть со стула не упал! На мой взгляд, нужно иметь в виду, что пользователь для работы мог выбрать какую-то существующую папку, в которой уже могло что-то лежать, поэтому целесообразно чистить только папки Expand, Makecab и CHECK_SUMM. Вроде мелочь, а сколько инфарктов предотвратит! :)
2) Думаю, файл ExMakeMod.ini лучше распологать возле ExMakeMod.exe, а не в System32. Не каждому понравится присутствие временных файлов (пусть и кофигурационных) в системной папке, тем более, что автоматом этот файл оттуда не удаляется. Тут можно остановиться на компромиссном варианте: ExMakeMod.ini пусть лежит возле ExMakeMod.exe и копируется в System32 (если это необходимо) только на время работы ExMakeMod, а по завершении - снова оттуда удаляется.
3) Есть смысл немного опимизировать программу: а что если команды "Скопировать упакованный файл в дистрибутив" и "Путь к папке в составе дистрибутива Windows" объединить? Если при выборе команды "Скопировать упакованный файл в дистрибутив" будет автоматически производиться поиск и замена одноимённого файла в дистрибутиве, то и необходимость в команде "Путь к папке в составе дистрибутива Windows" отпадёт.
4) Косметика: при сохранении файла в папку дистрибутива выдаётся сообщение "Файлы скопированы...". Почему файлы, ведь скопирован всего один файл?

В остальном всё прекрасно.

tehnik_srs
29-10-2010, 16:22
1) Упс! Извините, переделаю
2) Ну вот я запускаю с рабочего стола и видеть рядом инишник не хочется. Да и программе его нужно откуда-то считывать, так что рандомное имя не получится.
3) Ок, попробую
4) Хм, тут посложнее, но посмотрю.

Nun-Nun
29-10-2010, 16:35
2) Ну вот я запускаю с рабочего стола и видеть рядом инишник не хочется. Да и программе его нужно откуда-то считывать, так что рандомное имя не получится. »
Тогда пусть создаётся в системной папке Temp. Там всегда какой-нибудь мусор скапливается (логи всякие, tmp-файлы и прочее) и искать и чистить проще.

tehnik_srs
30-10-2010, 09:39
Nun-Nun, По-поводу пункта 3. А зачем? Вы один раз указали дистрибутив и потом копируете по горячей клавише, а так придется указывать постоянно

Nun-Nun
30-10-2010, 20:49
По-поводу пункта 3. А зачем? Вы один раз указали дистрибутив и потом копируете по горячей клавише, а так придется указывать постоянно »
По F8 файл копируется в корневую папку дистрибутива, а если этот файл должен лежать в подпапке i386 или ещё какой-то, то понадобится вручную указывать куда копировать. Сейчас программа сама не ищет нужное место в составе дистриба. Именно по этой причине и существует команда "Путь к папке в составе дистрибутива Windows". А если я много файлов начну обрабатывать, а лежать они должны не в одном, а в разных местах дистрибутива, то для каждого придётся каждый раз указывать путь к нужной папке (подпапке), что не очень-то удобно. Я предлагаю сделать несколько иначе: нужно только один раз указать путь к дистрибутиву, о чём программа может попросить во время запуска, например, что-нибудь типа "Если предполагаете работать с дистрибутивом Windows, укажите путь к папке, в которой он расположен". Программа запоминает путь к дистрибу (например, пишет в ini-файл), а затем, после обработки каждого файла, можно жамкать F8, и ExMakeMod сама должна найти нужное место в составе дистриба (разумеется, по одноимённому названию файла) и закинуть туда наш файл, заменяя им дистрибовский. Иными словами, пользователю не нужно каждый раз ползать по дистрибу, отыскивая нужную папку, достаточно жамкать на F8. Если же пользователь при запуске ExMakeMod по какой-то причине не указал, где раположен дистрибутив, но жамкает на F8, программа предложит для начала указать путь к нему. Таким, образом, место расположения дистриба будет указано всего один раз. Кстати, при завершении сеанса ExMakeMod может предложить запомнить настройки, сделанные в процессе работы, тогда при следующем запуске программе вообще ничего спрашивать не потребуется.
Вот, в принципе, я так вижу это дело.

tehnik_srs
03-11-2010, 10:58
Nun-Nun, Делаю поиск, нашел странный баг - в версии, которая в шапке, не работает modifype. Исправил, выложу сразу с рабочим поиском

Nun-Nun
03-11-2010, 15:16
Делаю поиск, нашел странный баг - в версии, которая в шапке, не работает modifype. Исправил, выложу сразу с рабочим поиском »
Думаю, им стОит присваивать версию или билд - проще отличить.

tehnik_srs
03-11-2010, 15:40
Nun-Nun, уже присваиваю

tehnik_srs
05-11-2010, 10:03
Nun-Nun, Сделал поиск в дистрибутиве, инишник положил рядом с exe. Обновлено в шапке

Nun-Nun
05-11-2010, 18:28
tehnik_srs,

Потестировал. Программа близка к завершению, но вот что думаю:
1) при первом запуске программа просит указать папку в составе дистрибутива, но логичнее было бы попросить "Укажите папку, в которой расположен дистрибутив Windows"; аналогичную команду в меню стОит убрать вообще, т.к. теперь программа сама может искать нужное место (папку) в дистрибутиве для сохранения обработанного файла.
2) когда начал пробовать, по ошибке указал не папку с дистрибом, а другую, в итоге при попытке сохранения обработанного файла в дистриб программа сообщила, что файл благополучно скопирован, хотя никакого дистриба, разумеется, не нашла.
3) сохранение обработанного файла в дистриб происходит только при использовании команды в меню, но при нажатии кнопки F8 эта функция не работает.

tehnik_srs
06-11-2010, 09:35
Nun-Nun, 1) Оставил такую возможность, чтобы сменить дистриб не убивая инишник
2) Хм, проверю
3) Посмотрел - извиняюсь, забыл раскомментарить

Nun-Nun
07-11-2010, 14:22
1) Оставил такую возможность, чтобы сменить дистриб не убивая инишник »
Может в меню программы такая команда и уместна, но при первом запуске - сбивает с толку. Лучше при первом запуске спросить "Укажите папку, в которой расположен дистрибутив Windows", тем более, что теперь программа нужный для замены файл в составе дистрибутива по F8 сама может отыскать. Если уж пользователю понадобится конкретная папка в составе дистриба, то он её вручную с помощью команды меню найдёт.

tehnik_srs
09-11-2010, 08:43
Nun-Nun, исправил F8 и копирование, вроде работает, проверяйте. В шапке обновлено

Nun-Nun
09-11-2010, 16:34
Посмотрел. К сожалению проблема осталась.
Как я и говорил, запрос "Укажите путь к папке в составе дистрибутива Windows", который программа делает при первом запуске путает всё дело. Если пользователю требуется обработать несколько файлов, которые должны будут после обработки располагаться в разных папках дистриба, то программа автоматически делает поиск только в той папке, которую пользователь указал при первом запуске ExMAkeMod и, вероятно, во вложенных в неё, при этом все папки верхних уровней дистриба останутся не просканированными, в итоге программа не находит нужного для замены файла и сообщает о его отсутствии, что, разумеется, не соответствует действительности! В результате по-прежнему пользователю для каждого файла нужно вручную указывать нужную папку, а это автоматизма программе не прибавляет.
Попытаюсь более наглядно пояснить, что имеено нужно.
Допустим папка с дистрибом называется Distrib, а пользователю необходимо обработать несколько фалов, причём расположить их после обработки нужно в разных папках дистриба, например, папке Distrib\I386 , Distrib\Support\Tools и Distrib. Если при первом запуске на запрос программы пользователь укажет папку Distrib\I386, то в эту папку попадут только файлы, одноимённые с расположенными в ней, для файлов других папок (Distrib\Support\Tools и Distrib) потребуется вручную указывать нужную папку. Если же при первом запуске ExMAkeMod запросит указать папку с дистрибутивом (а не папку в составе дистрибутива!), то пользователь должен будет указать папку Distrib. В этом случае, после обработки каждого файла пользователю достаточно жамкнуть на F8, чтобы программа просканировала весь дистрибутив, т.е. папку Distrib (включая папки в неё вложенные), и автоматом закинула файл в нужное место. Таким образом, больше пользователю ничего вручную указывать не нужно! Тогда ExMAkeMod уж точно зря не скажет, что нужный файл для замены не найден!

tehnik_srs
10-11-2010, 11:22
Nun-Nun, Хм, сейчас ExMakeMod запрашивает путь к папке (могу переименовать), например DISTRIB, после F8, она ищет файлы в DISTRIB и во всех вложенных папках. Если, например, в папке MAKECAB файлик 1.txt, она найдет его в DISTRIB\i386 и заменит этот файл. В чем проблема я не понял.

Nun-Nun
10-11-2010, 13:24
tehnik_srs, Хм, сейчас ExMakeMod запрашивает путь к папке (могу переименовать), например DISTRIB, после F8, она ищет файлы в DISTRIB и во всех вложенных папках. Если, например, в папке MAKECAB файлик 1.txt, она найдет его в DISTRIB\i386 и заменит этот файл. В чем проблема я не понял. »
Дело не в названии папки дистрибутива. Будет ли он называться Distrib или как-то ещё - не важно! Название пользователь может дать любое (разумеется, не кириллическое).
Чтобы стало понятнее, сделайте так: например, пользователю нужно обработать два файла - Bliss.jpg и cskbc.dll. После обработки файл Bliss.jpg в запакованном виде должен попасть в папку \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\I386, а файл cskbc.dll - в папку \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\Cmpnents\TABLETPC\i386\. При первом запуске вместо папки, в которой расположен дистрибутив (т.е. ВМЕСТО ПАПКИ \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\) программа просит УКАЗАТЬ ПАПКУ В СОСТАВЕ ДИСТРИБУТИВА WINDOWS. Что в итоге происходит: пользователь для файла Bliss.jpg укажет папку \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\I386. После обработки этого файла при нажатии на F8 программа просканирует эту папку и папки в неё вложенные и скопирует Bliss.jp_ в \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\I386. Вроде всё нормально, но следующий обработанный файл, т.е. cskbc.dll должен попасть в \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\Cmpnents\TABLETPC\i386\, т.е. в папку, которую программа не сканировала и сканировать не могла, т.к. за папку дистрибутива воспринимает указанную при первом запуске \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\I386. В итоге при нажатии F8 программа нужного файла не находит и сообщает, что файл cskbc.dl_ не найден. Чтобы она его нашла нужно вручную указывать новое место, т.е. \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\Cmpnents\TABLETPC\i386\.
Именно, чтобы такой чехарды не происходило я и предложил, чтобы программа при первом запуске запрашивала папку, в которой расположен дистрибутив Windows (корневую папку дистрибутива), т.е. \Nazvanie_Papki_v_kotoroy_nashoditsya_Distributiv\ , а не отдельную папку в его составе. Тогда в сферу поиска программы попадут все папки дистрибутива и при нажатии F8 не будет ложных сообщений о том, что файл не найден.

tehnik_srs
10-11-2010, 15:58
Обновил в шапке. Изменены название для меню и сообщение в первом окне.

Nun-Nun
11-11-2010, 10:15
tehnik_srs,

Да, название в первом окне изменено правильно. Начал экспериментировать с файлом Bliss.jpg: указываю, как положено, при первом запуске ExMakeMod папку для работы с файлами и папку дистрибутива; открываю Bliss.jpg, жму "Контрольная сумма" - всё нормально; открываю полученный файл, жму "Запаковать" - тоже всё нормально, а дальше жму F8 - программа сообщает, что файл Bliss.jp_ не найден. Судя по всему, она смотрит только корневую папку дистрибутива и не заглядывает во вложенные подпапки.
Посмотрите скрипт, видимо в команде, организующей поиск, есть ошибка.

P.S. Перетащил файл Bliss.jp_ из дистрибовской подпапки I386 в корневую папку дистрибутива и нажал F8 - программа сообщила, что всё нормально и файл скопирован. Выходит, что ExMakeMod действительно смотрит только корневую папку и не заглядывает во вложенные.

tehnik_srs
11-11-2010, 12:01
Nun-Nun, Проверил, создал файл 1.txt в DISTRIB\386. В качестве папки указал DISTRIB. Находит
Проверяю на wine, вечером проверю на винде

Nun-Nun
11-11-2010, 13:16
tehnik_srs,

Возьмите какую-нибудь картинку, обзовите её Bliss.jpg и попробуйте повторить вышеописанный мною вариант. Только расположите этот файл для чистоты эксперимента в какой-нибудь недистрибутивной папке.




© OSzone.net 2001-2012