The article you link to decribes how you turn off UAC, which in clear text means how you lower security. You need administrative privileges, and if you have them in your app, you wouldn't need to turn down the UAC level, but then your app and it's process would be a honeypot for viruses seeking higher priviledges.
The solution is to not write into program files. For example the start of a foxpro generated EXE creates a foxuser.dbf, you can solve that by installing it in the first place, or have RESOURCE=OFF in your config.fpw. You should not write data to Program Files, this is purely for executables, and they won't change, therefore the whole system folder is setup, so users can read and excute files inside, but not write.
You should put your data into user specific or allusers applicatiodata system folders and if you want to support foxuser.dbf can also put that into such system folders users are allowed to write to. There are many ways to determine such system folders. The main API changed from since VISTA from CSIDL to KnowfolderIDs, but the principle is the same and in both OS versions you can eg use Foxpros GETENV("USERPROFILE") to get the root folder of the current user and GETENV("ALLUSERSPROFILE") for the allusers profile. Indeed on Vista/Win7 that does not return C:\Public, but C:\Programdata, which is for all users app data. It's an unwritten law you add your company or application name as subfolder and only put further files there, see yourself how Microsoft themselves and other vendors create what folders in there.
Bye, Olaf.