Автор: 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 удаление старых? Жаль, нет возможности проверить.