Subject: | Re: Mapped Drives Pdox9
| Date: | Thu, 7 Sep 2017 12:10:59 +1000
| From: | "Leslie" <ViaThe List@NOSPAM.com>
| Newsgroups: | pnews.paradox-discussions
|
"Mark Bannister" <markRemove@THISinjection-moldings.com> wrote in message
news:59b000b4$1@pnews.thedbcommunity.com...
>> Yes and the correct "way around this" is to not run Paradox elevated.
>
> I agree but we have Paradox on 6-7 machines, mostly Win 7, and most run
> just fine. Two have to run elevated. I've never been able to figure it
> out.
The reason why a program has to run elevated is due to write permissions not
being granted under a User account.
A rough description of the main offenders are:
1. The Registry:
Applications no longer have write permission by default to the
HKEY_LOCAL_MACHINE registry branch. Modern applications should use
HKEY_LOCAL_MACHINE at install time and HKEY_CURRENT_USER at runtime.
Paradox (and the BDE) have not been updated to follow those rules. So, if
they need access to the HKEY_LOCAL_MACHINE branch at runtime then you can
manually set permissions on the area you require - obviously avoiding doing
the entire branch for security reasons.
2. Folder Permissions:
In the beginning of time, the Windows standard was to install applications
in the Program Files folder with a subfolder containing the data. Since
Windows Vista (and UAC) applications by default no longer have write access
to their own folder nor subfolders at runtime. As such, data should no
longer be stored in a subfolder.
There are two solutions to this problem:
(i) Move the data to another location (recommended), or
(ii) install the application outside of the Program Files folder and thus
the data subfolders will then be writable.
3. The BDE
For our BDE installer we implemented a combination of 1 & 2 above. Luckily
the BDE has a setting that tells it to store its configuration settings in a
cfg file rather than the Registry.
Of course, those applications that do the wrong thing and read the BDE
settings directly from the Registry will now be retrieving out of date
settings. There is an API to get those settings which works with settings
stored in the cfg file. So the golden rule for any external library is never
to directly read the registry for settings if an API exists - use that
instead.
But even storing the settings in the cfg file may not work if the BDE was
left to install itself at the default location \Program Files\Common
Files\BDE (or similar). So we moved it outside of the Program Files folder
(our default is now Windrive:\BDE32)
But that is our installer, not the one that ships with Paradox For Windows.
If you continue to use the Paradox version of the BDE then you either have
to manually configure the BDE yourself (not that hard to code) or any
application that uses the BDE must run elevated - Not a good solution.
Hopefully this information mayl help you determine why those two machines
need to run Paradox elevated. But don't forget that you can always install
Paradox in say C:\Paradox9 which will writable at runtime and thus should
not need to run elevated with a correctly configured BDE.
hth
Leslie.
|