Paradox Community

Items in pnews.paradox-discussions

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.



Copyright © 2004 thedbcommunity.com