Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

CTPAX-X _ Полезности _ WinRAR самораспаковывающиеся архивы

Автор: Siberian GRemlin Oct 1 2006, 16:24

Есть на руках самораспаковывающийся архивчик WinRAR, который сам ставит шрифты в папку со шрифтами мастдая, причём поверх системных и используемых в текущий момент, Arial и пр.

Появилась необходимость создать подобный архив - чтобы при распаковки ещё и свои шрифты в систему поставил и зарегистрировал. Как это можно сделать?!

Автор: jTommy Oct 1 2006, 17:18

QUOTE(Siberian GRemlin @ Oct 1 2006, 08:24 PM) *

Есть на руках самораспаковывающийся архивчик WinRAR, который сам ставит шрифты в папку со шрифтами мастдая, причём поверх системных и используемых в текущий момент, Arial и пр.

Появилась необходимость создать подобный архив - чтобы при распаковки ещё и свои шрифты в систему поставил и зарегистрировал. Как это можно сделать?!

Написать маленькую программу(а может быть и bat-файла будет достаточно), которая регистрирует шрифты в системе. Эту программу запаковать в архив со шрифтами, а в опциях при упаковке указать RAR'у, чтобы он запускал эту прогу после распаковки и потом ее удалял. Наверное, только так.

Заодно открой этот sfx архив в WinRAR'е и посмотри главный комментарий, там скорее всего будут команды скрипта.

Автор: Siberian GRemlin Oct 8 2006, 12:56

QUOTE(jTommy @ Oct 2 2006, 01:18 AM) *

Заодно открой этот sfx архив в WinRAR'е и посмотри главный комментарий, там скорее всего будут команды скрипта.


Посмотрел:
QUOTE

delete=arial.ttf
delete=arialbd.ttf
delete=cour.ttf
delete=courbd.ttf
delete=times.ttf
delete=timesbd.ttf
delete=PLCC____.ttf
silent


Как я понял, он сначала в папке назначения удаляет шрифты, потом извлекает свои. Как он умудряется в обход винды это делать?! В архиве только шрифты...

Автор: jTommy Oct 8 2006, 21:22

Цитата из справки WinRAR'а:

QUOTE

Delete=<имя файла>

Перед началом извлечения удаляет указанный файл в папке назначения. Допускается использовать несколько команд Delete.
Если указанный в команде Delete файл заблокирован и не может быть удален, SFX-модуль попытается перед извлечением переименовать его, дав временное имя, а после перезагрузки Windows - удалить. Успех этой операции зависит от используемой версии Windows.
Решил проверить. Попробовал удалить arial.ttf - не удаляется, говорит Access Denied. Попробовал переименовать - запросто переименовывается.

Автор: Ёжики Oct 12 2006, 19:16

QUOTE
Есть на руках самораспаковывающийся архивчик WinRAR, который сам ставит шрифты в папку со шрифтами мастдая, причём поверх системных и используемых в текущий момент, Arial и пр.

Можно глянуть?

Можно попробовать прогу в батнике Unlocker (только я не в курсе, поддерживает ли она командную строку). Переименовать запущенный файл можно без проблем.

Siberian GRemlin

Может оно просто переименовывает старые шрифты, распаковывает свои, регистрирует их в реестре, а потом ставит в RunOnce удаление старых? Жаль, нет возможности проверить.