Директива INF ProfileItems
Внимание
Начиная с Windows 11 версии 22H2 пакет драйвера, использующий эту директиву, больше не подходит для подписи из Центра разработчиков оборудования.
Пакеты универсальных драйверов и драйверы Windows не могут использовать эту директиву.
Директива ProfileItems используется в разделе INF DDInstall для перечисления одного или нескольких разделов профиля, содержащих элементы или группы, к которым нужно добавить или удалить из него, меню .
[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]
Имя ссылки указывает имя ссылки для элемента меню или группы без расширения .lnk. Это значение может быть строкой или маркером %strkey% , определенным в разделе Strings INF-файла. Если запись DisplayResource не указана, имя ссылки также является отображаемой строкой.
Необязательное значение атрибутов имени указывает один или несколько флагов, влияющих на операцию в элементе меню. Это значение выражается как битовая маска ORed для системных значений флагов. Возможные флаги включают следующие:
0x00000001 (FLG_PROFITEM_CURRENTUSER)
Направляет Windows для создания или удаления элемента меню в профиле текущего пользователя. Если этот флаг не указан, Windows обрабатывает элемент для всех пользователей.
0x00000002 (FLG_PROFITEM_DELETE)
Направляет Windows для удаления элемента меню. Если этот флаг не указан, создается элемент.
0x00000004 (FLG_PROFITEM_GROUP)
Направляет Windows для создания или удаления группы меню в разделе Start\Programs. Если этот флаг не указан, Windows создает или удаляет элемент меню, а не группу меню.
Если флаг не указан, Windows создает элемент меню для всех пользователей.
CmdLine=dirid,[subdir],filename
Dirid задает значение, определяющее каталог, в котором находится программа команд. Например, значение 11 указывает системный каталог. Возможные значения диридов перечислены в описании диридного значения в разделе DestinationDirs.
Если строка поддиректора присутствует, программа команд находится в подкаталоге каталога, на который ссылается дирид. Поддиректор указывает подкаталог. Если поддир не указан, программа находится в каталоге, на который ссылается dirid.
Имя файла указывает имя программы, связанной с элементом меню.
SubDir=path
Эта необязательная запись указывает подкаталог (подменю) в разделе Start\Programs, в котором находится элемент меню. Если эта запись опущена, путь по умолчанию имеет значение Start\Programs.
Например, если в разделе profile-items есть запись "Subdir=Accessories\Games", то элемент меню создается или удаляется в подменю Start\Programs\Accessories\Games.
Примечание.
Если FLG_PROFITEM_GROUP задано для атрибутов имени, запись SubDir игнорируется.
WorkingDir=wd-dirid[,wd-subdir]
Эта необязательная запись указывает рабочий каталог для командной программы. Если эта запись опущена, рабочий каталог по умолчанию используется в каталоге, в котором находится программа команд.
Значение wd-dirid определяет рабочий каталог. Список возможных значений диридов см. в разделе "Использование dirids".
Строка wd-subdir , если она присутствует, указывает подкаталог wd-dirid , который будет рабочим каталогом. Используйте этот параметр, чтобы указать каталог, который не имеет системного дирида. Если этот параметр опущен, значение wd-dirid только указывает рабочий каталог.
IconPath=icon-dirid,[icon-subdir],icon-filename
Эта необязательная запись указывает расположение файла, содержащего значок для элемента меню.
Строка значка определяет каталог библиотеки DLL, содержащей значок. Список возможных значений диридов см. в разделе "Использование dirids".
Значение значка-поддирира, если оно присутствует, указывает, что библиотека DLL находится в подкаталоге значка-дирида. Значение icon-subdir указывает подкаталог.
Значение имени файла значка указывает библиотеку DLL, содержащую значок.
Если эта запись опущена, Windows ищет значок в файле, указанном в записи CmdLine .
IconIndex=index-value
Эта необязательная запись указывает, какой значок в библиотеке DLL следует использовать для элемента меню. Сведения о том, как индексировать значки в библиотеке DLL, см. в документации по пакету SDK для Microsoft Windows.
Если указана запись IconPath, индексирует индексы индекса в эту библиотеку DLL. В противном случае это значение индексирует файл, указанный в записи CmdLine .
HotKey=hotkey-value
Эта необязательная запись указывает ускоритель клавиатуры для элемента меню.
Дополнительные сведения о горячих ключах см. в документации по пакету SDK для Windows.
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). Если эта запись не используется, отображается строка, указанная записью Name .
Замечания
Заданное имя раздела профиля должно быть уникальным в INF-файле и должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для INF-файлов.
Каждый раздел profile-items-section содержит подробные сведения о создании или удалении одного меню элемента или группы. Чтобы управлять несколькими элементами меню или группой из INF, создайте несколько разделов профиля и перечислить разделы в директиве ProfileItems .
Любой из строковых параметров, указанных в записях раздела profile-items, можно указать с помощью маркера %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"