we are actually using the official API to read out the "ProgramFiles" directory:
Can you open a command prompt (cmd.exe) and type:
What output do you get?
Regarding your second question: which CAPTCHA are you referring to?
Here's the output:
W:\Users\ender>set programf ProgramFiles=W:\Program Files ProgramFiles(x86)=W:\Program Files (x86)
Note that you should be using the SHGetFolderLocation API, not rely on environment variables.
As for CAPTCHA, I had to solve it before I could post the message.
I also tested with PowerShell - both PowerShell 5 and 7 return the correct path:
PS W:\Program Files\PowerShell\7> [System.Environment]::GetFolderPath("programfiles") W:\Program Files
We are using .NET 5 / C# and I just checked their source code and they are using SHGetFolderPath API. The SHGetFolderLocation API you suggested is marked as deprecated:
I'm honestly not sure why the installer can't resolve the correct path on your system. The environment variables are also correct on your system.
OK, might be some weirdness in .NET 5. It's a minor issue anyway, and I assume update installers will pick the selected install folder anyway.
Yes, it should remember the previous path. If not, please let us know.
RoyalTS v6 installer doesn't appear to use the Windows' Known Folder API to get the Program Files path, and instead defaults to C:\Program Files (which doesn't exist on my home computer – due to upgrades going back to Windows 7, I don't have a C: drive at all). Luckily it's just a minor thing to change while installing.
(also, why is there a CAPTCHA check for logged in users‽)