I guess what I can do is look in the current directory, and if there is a Rainmeter.ini I can assume that either the user is still on the old version of Rainmeter or is running in a "portable" environment and do all my loading / saving etc. from the /Themes folder the way it did before, and only if it finds APPDATA\Rainmeter\Rainmeter.ini but NO current directory version of Rainmeter.ini does it assume the new system is in place and make use of APPDATA\Rainmeter\Themes.dragonmage wrote:Maybe like I suggested for Rainmeter itself, an extra file could be added to the RainThemes folder to tell it that it is portable version. As far as the local version if it is configured to run from Addons\ then it should only be saving to the Rainmeter folder that it is running from.
I will have to code something in so that when I try to write to a directory and it fails, the user is notified. This will handle those who just don't "get it" and install Rainmeter as a "portable" version to Program Files while leaving UAC turned on, and those who are on the old version of Rainmeter and have UAC turned on. I don't want to ever have to tell a user to set RainThemes to run as "admin" again, even though in a practical sense that might be the only solution for a user on the old Rainmeter with UAC turned on until we can transition people onto the newer version. As far as I am concerned, once we have all the issues with Vista / Seven figured out and in place in Rainmeter, I am happy to just let the old version fail on a system with UAC turned on and Rainmeter in Program Files. The answer is, if you are on Vista or Seven, you MUST upgrade. The old version is XP only.
Portable versions of applications are a good thing, and we (Rainmeter and RainThemes, RainRegExp, whatever) need to support them in a way that is consistent with how Windows works. I am not interested long term in taking any "extra" steps to support a portable install of RainThemes in Program Files, as that is against the rules. Just because it can be done doesn't mean it should. Running a portable app from Program Files means either turning off UAC (I won't write an app that forces that on the user, it's their choice, not mine) or running the app as "admin". (again, if a user wants to give an application free run of his computer that is up to him, not me)
Of course these are "principles" and as with most things the devil will be in the details. We are going to have to support a fairly long term transition from XP to Vista/Seven without taking an unreasonable stance and just breaking everything ever written before.