Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Регистрация программ в меню «Пуск» Windows 95

01.01.2007

Подобная проблема возникает при создании инсталляторов и деинсталляторов. Наиболее простой и гибкий путь - использование DDE. При этом посылаются запросы к PROGMAN. Для этого необходимо поместить на форму компонент для посылки DDE запросов - объект типа TDdeClientConv. Для определенности назовем его DDEClient. Затем добавим метод для запросов к PROGMAN:

function TForm2.ProgmanCommand(Command: string): boolean;
var
  macrocmd: array[0..88] of char;
begin
  DDEClient.SetLink('PROGMAN', 'PROGMAN');
  DDEClient.OpenLink; { Устанавливаем связь по DDE }
  strPCopy(macrocmd, '[' + Command + ']'); { Подготавливаем ASCIIZ строку }
  ProgmanCommand := DDEClient.ExecuteMacro(MacroCmd, false);
  DDEClient.CloseLink; { Закрываем связь по DDE }
end;

// Пример использования:
ProgmanCommand('CreateGroup(Комплекс программ для
  каталогизации литературы, )');
ProgmanCommand('AddItem(' + path + 'vbase.hlp, Справка по VBase,
  '+ path +' vbase.hlp, 0,,, '+ path + ',, )');
// где path - строка типа String, содержащая
// полный путь к каталогу ('C:\Catalog');

При вызове ProgmanCommand возвращает true, если посылка макроса была успешна. Система команд (основных) приведена ниже:

Previous page:
Как добавить группу в Program Manager?
Top:
DRKB
Next page:
Распределенные приложения баз данных