Длинные имена в INF-файлах.
О проблемах с длинными файловыми именами в INF-файлах, а также их решении рассказывает данная статья.

К сожалению, Вы не сможете с помощью INF файла обычным способом скопировать файлы с длинными именами. Поддержка длинных файловых имен в INF файлах немного усложнена. Для этого нужно осуществить следующий процесс: исходный файл должен быть с коротким именем, после установки его имя нужно переименовать в длинное. Для удаления процесс повторяется в обратном направлении: длинное файловое имя переименовывается в короткое и удаляется уже файл с 8.3 именем. Для этих действий в реестре предусмотрены специальные ключи:

Следующий ключ используется для переименования файлов:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RenameFiles

Этот ключ используется для удаления файлов:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DeleteFiles

Для действий переименования или удаления нужно добавить подключ с любым именем в соответствующую ветвь реестра. Минимум два ключа должны быть определены. Первый ключ содержит имя каталога, где будет происходить переименование или удаление файлов. Следующий ключ(и) содержит имена файлов: первое - короткое, второе - длинное и его атрибуты, если нужно:

1 Только для чтения
2 Скрытый
3 Системный

Следующий пример демонстрирует переименование в каталоге C:\Files файла About.txt в About View files.txt и устанавливает ему атрибут скрытый, а также переименование этого же файла в подкаталоге Xmp папки C:\Files и устанавливает ему атрибут только для чтения:

[Version]
Signature=$Chicago$

[DefaultInstall]
AddReg=Rename

[Rename]
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Example,,,"%30%\Files"
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Example,About.txt,,"About View files.txt,2"

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\SubDir,,,"%30%\Files\Xmp"
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\SubDir,About.txt,,"About View files.txt,1"

Ключи для удаления файлов имеет такую же структуру. Рассмотрим пример, который в каталоге C:\Files удаляет файл About View files.txt и такой же файл удаляет в подкаталоге Xmp папки C:\Files:

[Version]
Signature=$Chicago$

[DefaultUninstall]
AddReg=Delete

[Delete]
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Example,,,"%30%\Files"
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Example,About.txt,,"About View files.txt"

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\SubDir,,,"%30%\Files\Xmp"
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\SubDir,About.txt,,"About View files.txt"

Параметры Example и SubDir могут быть любыми, например, названием Вашей программы, подкаталога и т.д. Важно, чтобы они были разными, т.к. переименование/удаление происходит в разных каталогах.

После того, как любые из действий выполнятся, эти данные будут удалены из реестра автоматически.

Copyright © 2002-2008 by Vladimir Drigalkin aka LENIN INC. All Rights Reserved.