Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


В контексте предыдущих постов и давнего желания доработать раздел приложения про ярлыки,

доработана статья: Приложение 2. Тонкости использования inf- файлов.

Новое: Cоздание и удаление ярлыка на Рабочем Столе, Cоздание и удаление нескольких ярлыков, Флаги ProfileItems (0x00000003), Копирование одного и того же файла в разные папки.

Изменения отдельно от статьи:
читать дальше »

3. Cоздание и удаление ярлыка на Рабочем Столе

Код: Выделить весь код
[DefaultInstall]
ProfileItems	=PROG.AddDeskShortcut

[Uninstall]
ProfileItems	=PROG.AddDeskShortcut

[PROG.AddDeskShortcut]
Name		=%SRTC_NAME%,0x00000001
CmdLine		=16422,%PROG_DIR%,%PROG_1%
WorkingDir	=16422,%PROG_DIR%
SubDir		=%PROG_SDIR3%
InfoTip		=%PROG_INFO%

[PROG.DelDeskShortcut]
Name		=%SRTC_NAME%,0x00000003
SubDir		=%PROG_SDIR3%

[Strings]
SRTC_NAME = "Имя ярлыка"
PROG_DIR = "Путь к папке программы в Program Files"
PROG_1 = ИмяФайла.exe
PROG_INFO="Всплывающее сообщение"
PROG_SDIR3	="..\..\Рабочий стол"
Из выше приведенных примеров видно, что ярлык практически в любой локальной папке пользователя в "Documents and Settings" можно создать при помощи конструкции
Код: Выделить весь код
SubDir = "..\..\ "
Как это работает?
Рабочей директорией для ProfileItems по умолчанию является папка Программы в меню Пуск или другими словами %профиль%\Главное меню\Программы. Конструкцией ..\..\ мы поднимается на два уровня вверх, т.е. в %профиль% и затем указывает путь, например в %профиль%\Рабочий стол или в %профиль%\SendTo. Также можно поднятся еще выше, например,
Код: Выделить весь код
SubDir ="..\..\..\Default User\Рабочий стол"
4. Cоздание и удаление нескольких ярлыков

Это элементарно, но некоторые пользователи все еще путаются.

Код: Выделить весь код
[DefaultInstall]
ProfileItems	=PROG.AddShortcut1, PROG.AddShortcut2, PROG.AddShortcut3

[Uninstall]
ProfileItems	=PROG.DelShortcut1, PROG.DelShortcut2, PROG.DelShortcut3

[PROG.AddShortcut1]
Name		=%SRTC_NAME1%,0x00000001
CmdLine		=16422,%PROG_DIR%,%PROG_1%
WorkingDir	=16422,%PROG_DIR%
SubDir		=%PROG_SDIR1%
InfoTip		=%PROG_INFO%

[PROG.AddShortcut2]
аналогично

[PROG.AddShortcut3]
аналогично

[PROG.DelShortcut1]
Name		=%SRTC_NAME1%,0x00000003
SubDir		=%PROG_SDIR1%

[PROG.DelShortcut2]
аналогично

[PROG.DelShortcut3]
аналогично
Важно: Пока нет профиля реального пользователя (а его нет до первого входа в систему), ярлыки имеющие флаг 0x00000001 будут создаваться в дефолтном профиле. При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя. Соответственно 0x00000003 - Удалить пункт меню (ярлык) для текущего пользователя.

4.Флаги ProfileItems (опять Gosh).

Есть в руководстве по INF файлам, но по этому списку более понятна логика складывания флагов:
Код: Выделить весь код
 
0x00000001 	Создать пункт меню для текущего пользователя
0x00000002 	Удалить пункт меню
0x00000003 	Удалить пункт меню для текущего пользователя
0x00000004 	Создать пункт меню для профиля All Users в папке Пуск\Все программы
0x00000005 	Создать пункт меню для профиля Current User в папке Пуск\Все программы
0x00000006 	Удалить пункт меню для профиля All Users в папке Пуск\Все программы
0x00000007 	Удалить пункт меню для профиля Current User в папке Пуск\Все программы
7. Копирование одного и того же файла в разные папки.

Код: Выделить весь код
[DestinationDirs]
File.Copy=16422,"Prog"
FileYet.Copy=16422,"Prog\Subdir"

[File.Copy]
filename.dll,,,4 

[FileYet.Copy]
filename.dll,,,4


Предлагаю обсудить всем заинтересованным, до добавления в Руководство.


А и еще JamesZero,
не мог бы ты прокомментировать мое высказвание :
Цитата:
Из выше приведенных примеров видно, что ярлык практически в любой локальной папке пользователя в "Documents and Settings" можно создать при помощи пути SubDir = "..\..\Путь к папке внутри "Documents and Settings".
А то я только по анологии понимаю действие "..\", может ты научными словами обьяснишь.

-------

Ю-ху!


Последний раз редактировалось volk1234, 26-07-2008 в 12:06.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:23, 23-07-2008 | #201