Директива INF ProfileItems

Внимание!

Начиная с Windows 11 версии 22H2, пакет драйвера, использующий эту директиву, больше не может быть подписан центром разработчиков оборудования.

Пакеты универсальных драйверов и драйверы Windows не могут использовать эту директиву.

Директива ProfileItems используется в разделе INF DDInstall для перечисления одного или нескольких разделов profile-items-sections, содержащих элементы или группы, к которым нужно добавить или удалить из меню Пуск.

[DDInstall] 
 
ProfileItems=profile-items-section[,profile-items-section]...
...

Каждый именованный раздел, на который ссылается директива ProfileItems , имеет следующую форму:

[profile-items-section]
 
Name=link-name[,name-attributes]
CmdLine=dirid,[subdir],filename
[SubDir=path]
[WorkingDir=wd-dirid,wd-subdir]
[IconPath=icon-dirid,[icon-subdir],icon-filename]
[IconIndex=index-value]
[HotKey=hotkey-value]
[Infotip=info-tip]
[DisplayResource="ResDllPath\ResDll",ResID]

Эта директива поддерживается в Windows XP и более поздних версиях Windows.

Записи

Name=link-name[,name-attributes]
Link-name указывает имя ссылки для пункта меню или группы без расширения .lnk. Это значение может быть строкой или токеном %strkey%, определенным в разделе Strings INF-файла. Если запись DisplayResource не указана, имя ссылки также является отображаемой строкой.

Необязательное значение атрибутов имени указывает один или несколько флагов, влияющих на операцию в элементе меню. Это значение выражается в виде битовой маски ORed значений системных флагов. Возможные флаги:

0x00000001 (FLG_PROFITEM_CURRENTUSER)
Предписывает Windows создать или удалить пункт меню "Пуск" в профиле текущего пользователя. Если этот флаг не указан, Windows обрабатывает элемент для всех пользователей.

0x00000002 (FLG_PROFITEM_DELETE)
Направляет Windows на удаление пункта меню. Если этот флаг не указан, создается элемент.

0x00000004 (FLG_PROFITEM_GROUP)
Предписывает Windows создать или удалить группу меню "Пуск" в меню Пуск\Программы. Если этот флаг не указан, Windows создает или удаляет пункт меню, а не группу меню.

Если флаг не указан, Windows создает пункт меню для всех пользователей.

CmdLine=dirid,[subdir],filename
Dirid задает значение, определяющее каталог, в котором находится командная программа. Например, значение 11 указывает системный каталог. Возможные значения dirid перечислены в описании значения dirid в разделе DestinationDirs .

Если строка поддира присутствует, командная программа находится в подкаталоге каталога, на который ссылается dirid. Поддиректор указывает подкаталог. Если вложенный каталог не указан, программа находится в каталоге, на который ссылается dirid.

Имя файла указывает имя программы, связанной с элементом меню.

SubDir=path
Эта необязательная запись указывает подкаталог (подменю) в разделе Пуск\Programs, в котором находится элемент меню. Если эта запись опущена, по умолчанию используется путь Пуск\Программы.

Например, если в разделе profile-items-section есть запись "Subdir=Accessories\Games", то элемент меню создается или удаляется в подменю Start\Programs\Accessories\Games.

Примечание

Если FLG_PROFITEM_GROUP указан для атрибутов имени, запись SubDir игнорируется.

WorkingDir=wd-dirid[,wd-subdir]
Эта необязательная запись указывает рабочий каталог для командной программы. Если эта запись не указана, рабочий каталог по умолчанию будет использоваться в каталоге, в котором находится командная программа.

Значение wd-dirid определяет рабочий каталог. Список возможных значений dirid см. в разделе Использование dirids.

Строка wd-subdir , если она имеется, указывает подкаталог wd-dirid , который будет рабочим каталогом. Используйте этот параметр, чтобы указать каталог, который не имеет определяемого системой dirid. Если этот параметр опущен, значение wd-dirid указывает рабочий каталог.

IconPath=icon-dirid,[icon-subdir],icon-filename
Эта необязательная запись указывает расположение файла, содержащего значок для пункта меню.

Строка icon-dirid определяет каталог для библиотеки DLL, содержащей значок. Список возможных значений dirid см. в разделе Использование dirids.

Значение icon-subdir , если оно имеется, указывает, что библиотека DLL находится в подкаталоге icon-dirid. Значение icon-subdir указывает подкаталог.

Значение icon-filename указывает библиотеку DLL, содержащую значок .

Если эта запись опущена, Windows ищет значок в файле, указанном в записи CmdLine .

IconIndex=index-value
Эта необязательная запись указывает, какой значок в библиотеке DLL следует использовать для пункта меню. Сведения о том, как индексировать значки в библиотеке DLL, см. в документации по Microsoft Windows SDK.

Если указана запись IconPath , индекс-значение индексируется в этой библиотеке DLL. В противном случае это значение индексирует файл, указанный в записи CmdLine .

HotKey=hotkey-value
Эта необязательная запись указывает ускоритель клавиатуры для пункта меню.

Дополнительные сведения о горячих ключах см. в документации по Windows SDK.

Infotip=info-tip
Эта необязательная запись указывает информационную подсказку для пункта меню.

Это значение может быть строкой или токеном %strkey%, определенным в разделе Strings INF-файла.

Значение info-tip также можно указать как @ResDllPath\ResDll,-ResID, гдеResDllPath и ResDll указывают путь и имя файла библиотеки DLL ресурса, а -resID — отрицательное значение, представляющее идентификатор ресурса.

Используйте этот формат для поддержки многоязыкового пользовательского интерфейса Windows (MUI). Ниже приведен пример.

InfoTip = "@%11%\shell32.dll,-22531"

DisplayResource="ResDllPath\ResDll",ResID
Эта необязательная запись указывает строковый ресурс, идентифицирующий локализуемую строку, которая будет использоваться в меню "Пуск" в качестве отображаемого имени ярлыка или группы.

ResDllPath и ResDll указывают путь и имя файла библиотеки DLL ресурса, а resID — положительное значение, представляющее идентификатор ресурса. Ниже приведен пример.

DisplayResource="%11%\shell32.dll",22019

Используйте эту запись для поддержки многоязыкового пользовательского интерфейса Windows (MUI). Если эта запись не используется, отображается строка, указанная в записи Имя .

Комментарии

Заданное имя раздела profile-items-section должно быть уникальным в ПРЕДЕЛАХ INF-файла и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для ФАЙЛОВ INF.

Каждый раздел profile-items-section содержит подробные сведения о создании или удалении одного элемента меню "Пуск" или группы. Чтобы управлять несколькими пунктами меню или группами из INF, создайте несколько разделов profile-items-section и выведите список разделов в директиве ProfileItems .

Любой из строковых параметров, указанных в записях profile-items-section , можно указать с помощью токена %strkey%, как описано в разделе Общие правила синтаксиса для ФАЙЛОВ INF.

Примеры

В следующем фрагменте INF-файла показано, как использовать раздел profile-items-section для добавления калькулятора в меню "Пуск".

[CalcInstallItems]
Name = %Calc_DESC%
CmdLine = 11,, calc.exe
SubDir = %Access_GROUP%
WorkingDir = 11
InfoTip = %Calc_TIP%
:
:
[Strings]
AccessGroup = "Accessories"
Calc_DESC = "Calculator"
Calc_TIP = "Performs basic arithmetic tasks with an on-screen calculator"

В следующем фрагменте INF-файла показано, как установить то же программное обеспечение с помощью записи DisplayResource для создания локализованных пунктов меню.

[CalcInstallItems]
Name = %Calc_DESC%
CmdLine = 11,, calc.exe
SubDir = %Access_GROUP%
WorkingDir = 11
InfoTip = "@%11%\shell32.dll,-22531"
DisplayResource="%11%\shell32.dll",22019
:
:
[Strings]
Access_GROUP = "Accessories"
Calc_DESC = "Calculator"

См. также раздел

Установка DDInstall