Das mit einer Datenbank ist eine Möglichkeit, aber jedes Programm vorher testen? Es allgemein zu machen wäre besser.
Dann wirst du wohl alles hooken müssen was nicht niet- und nagelfest ist und ganz genau schauen was welches Programm macht... Sprich welche Prozesse gestartet werden, welche Registryeinträge in den Autostart-Schlüsseln gesetzt werden, ...
Aber wenn dein Hook zu spät gesetzt wird, weil etwas anderes vorher startet, bringt dir das trotzdem nichts.
Nach meiner Erfahrung spielen RunOnce Aufrufe eine Rolle, aber das kann es nicht alleine sein.
Ich hatte bisher nur Setups, die damit (oder unsaubererweise mit einer anderen Autostart-Möglichkeit, sprich Run etc.) liefen oder die einen Updatedienst installiert haben, der dann den Rest erledigt hat.
Wenn du eines kennst, das es anders macht, könntest du es posten. Dann können wir gern mal schauen wie es da läuft.