@Jason Carr
I completely reinstalled Windows 10 just 2 weeks ago and can assure you that I did not change any permissions on those folders ^^ I did however have to change some on Drive D, but that is another matter entirely. Since then I have also freshly installed LaunchBox from scratch on the fresh C drive in a new folder @ C:\Games\LaunchBox just so I can rule out the possibility of wrong permissions.
Without knowing anything about your source code used here, I got the idea that MAYBE this has to do with me using a german version of Win10? Since the error message says "C:\ProgramData\Microsoft\Windows\Start Menu\Programme" which is kinda jumbled... in english Windows versions it is "Start Menu\Programs" in german Windows it should normally be "Startmenü\Programme".
Having said that, I know that the folder name is still "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\" but translated through one of those desktop.ini files floating around everywhere in translated Windows versions...
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21782
that's responsible for the translation.
On the other hand I can totally see Microsoft restricting even read access of that folder outside of an installer (which doesn't run at user level I think? I never dove far enough into this to know for sure) because why would that interest any program? (But don't worry, I would probably have done the same, if I needed to know what programs the voice assistant should be able to launch).
Since I can't test it yet, but I am oh so curious: How does your implementation handle "strange" game names, like for example "Aero the Acro-Bat"? And on that same note, do you plan on implementing an extra field in the game properties, to choose an "alternate" name for voice search? E.G.: "Link's Awakening" "Zelda: Link's Awakening" maybe even "Zelda 1 on GameBoy"... or "Super Mario World 2: Yoshi's Island" "Yoshi's Island" "Mario World 2" "Super Mario World 2"
Sorry for the wall of text, pretty much just spitballing here.