Retrieving the contents of a Start Menu Folder
Use DDE to access Program Manager
Step 1:
Create a DDEClientConv and link it to Service: ProgMan, Topic: ProgMan
Step 2:
Get the data:

var
  Ds: PChar;
begin
  Ds := Conv1.RequestData('ProgMan');
  if Ds = nil then
    Exit;
  ShowMessage(StrPas(Ds));
  StrDispose(Ds);
end;
Notes:
You can access the contents of a specific folder using:
RequestData('folder name');

eg:
RequestData('Accessories');

Home