|
_app.useUACPathsPropriété apparue avec la version dBase 2.70 afin de permettre une meilleure comptabilité avec les versions Vista et suivantes de Windows.Ceci indique si dBASE ou une application dBASE doit suivre des règles de lUAC. (Pour savoir sur une machine sous Vista comment régler l'UAC , voir le site de Jean-Claude Bellamy)
Les Programmes qui ne suivent pas ces conventions sont sujets à un examen plus minutieux par Windows avant que le programme soit lancé (par lintermédiaire des mécanismes de Windows User Access Controls (UAC)) et que Windows puisse déclencher des avertissements supplémentaires ou que Windows empêche le programme de sexécuter (selon les droits daccès de lutilisateur, les définitions actuelles de Windows et de la configuration desfichiers manifest pour lapplication). useUACPaths donne la capacité à dBASE Plus dadhérer aux conventions de Vista et de Windows 7 en ce qui concerne lemplacement où dBASE Plus crée et stocke son dossier .ini (contenant les définitions de lutilisateur), où dBASE demande au BDE de créer ses fichiers temporaires et le chemin par défaut pour la session au démarrage de dBASE. Pendant le démarrage, dBASE et les applications de dBASE détermineront es paramètres des useUACPaths (comme décrit ci-dessous) et puis vérifieront les useUACpaths pour déterminer lemplacement de différents fichiers dont plus.ini ou le dossier.ini dune application. Quand lindicateur est à Faux (False), dBASE et les applications dBASE définira les emplacements des fichiers .ini, des fichiers utilitaires de conversion, incluant des fichiers, divers fichiers exemple, et des fichiers temporaires dossiers dans des dossiers utilisés dans les versions antérieures de dBASE.Quand lindicateur est à vrai (True), dBASE définira les emplacements pour les fichiers .ini, des utilitaires de conversion, les fichiers Include, divers fichiers exemples, et les fichiers temporaires aux dossiers dans larborescence du dossier privé de lutilisateur actuel selon les exigences de lUAC de Windows. dBASE détermine le chemin de larborescence du dossier privé de lutilisateur en recherchant le chemins spécial du dossier Windows suivant : CSIDL_LOCAL_APPDATA et CSIDL_ APPDATA.
Comment _app.useUACPaths est défini au démarrage de dBASE Plus (Plus.exe) ou d' une application .exe (Plusrun.exe) :Pendant le démarrage de plus.exe : - il vérifie si lenregistrement HKEY_LOCAL_MACHINE\SOFTWARE\dBASE\PLUS\series1\useUACPaths existe et sil est positionné à y ou à Y Si oui, Défini _app.useUACPaths à True Autrement, Défini _app.useUACPaths à False - Ensuite, il vérifie si le commutateur -v, a été passé à plus.exe sur la ligne de commande, qui surchargerait le paramètre par défaut ci-dessus.Si oui, Si -v1 (ou - V1) a été trouvé sur la ligne de commande, Défini _app.useUACPaths à True Si - v0 (ou -V0) a été trouvé sur la ligne de commande, Défini _app.useUACPaths à False
En résumé pour plus.exe : Si une clé de registre useUACPaths existe pour dBASE Plus, elle définit le statut par défaut pour _app.useUACPaths. Si cette clé nexiste pas, _app.useUACPaths est défini à False. Si le commutateur -v est passé sur la ligne de commande, il surchargera le paramétrage par défaut ci-dessus.
Pendant le démarrage de plusrun.exe Il vérifie si la clé de regisre HKEY_LOCAL_MACHINE\SOFTWARE\dBASE\PLUS\series1\useUACPaths existe et si elle est positionnée sur y ou à Y.Si oui, Défini _app.useUACPaths à True Autrement, Défini _app.useUACPaths à False - Ensuite, il vérifie si, sur la ligne de commande, le commutateur -v a été passé à plus.exe (ou une application .exe) qui surchargerait le paramètre par défaut ci-dessus.Si oui, Si - v1 (ou - V1) a été trouvé sur la ligne de commande, Défini _app.useUACPaths à True Si - v0 (ou - V0) a été trouvé sur la ligne de commande, Défini _app.useUACPaths à False - Si aucun commutateur -v na été passé par lintermédiaire de la ligne de commande plusrun.exe examine dans le registre afin de sassurer quaucune clé spécifique à l'application ne définisse useUACPaths : HKEY_LOCAL_MACHINE\SOFTWARE\dBASE\PLUS\RuntimeApps\<app file name>\useUACPaths
Si cette clé est trouvée, elle surcharge la définition par défaut effectuée par lintermédiaire de la clé de registre dBASE\PLUS\series1 Si positionné à y ou à Y Défini _app.useUACPaths à True Si positionné à n ou à N Défini _app.useUACPaths à False - Si aucun commutateur -v na été passé par lintermédiaire de la ligne de commande ET si aucune clé du registre de RuntimeApps na été trouvée pour lapplication, alors lapplication .exe est vérifiée pour voir si une définition est incluse pour positionner _app.useUACPaths à True.Si une instruction incorporée à lUAC (embedded UAC flag) est trouvéeDéfini _app.useUACPaths à True En résumé pour une application .exe : Si une clé du registre useUACPaths existe pour dBASE Plus, elle est utilisée pour définir par défaut app.useUACPaths. Si cette clé nexiste pas, _app.useUACPaths est positionné à False. Si une application .exe est construite avec une définition incluse pour lUAC, la définition incluse surchargera la position globale pardéfaut réglée par dBASE Plus ci-dessus. Si une clé spécifique du registre de lapplication existe, sa définition surchargera la définition de la clé du registre de dBASE Plus et la définition incluse de lUAC de lapplication .exe (si une clé existe). Si le commutateur -v est passé sur la ligne de commande, il surchargera toutes les définitions ci-dessus.Items affectés par _app.useUACPaths Premièrement Plus.exe ou plusrun.exe sassurera que les dossiers suivants existent et les créent sils nexistent pas encore : Pour PLUS.EXE: <CSIDL_LOCAL_APPDATA>\<dBASE Plus subpath>\Bin <CSIDL_APPDATA>\<dBASE Plus subpath>\Bin Pour une application .exe: <CSIDL_LOCAL_APPDATA>\<application launch subpath> <CSIDL_APPDATA>\<application launch subpath> <.. subpath> Pour dBASE PLUS IDE et une Application dBASE Plus est évalué comme suit... - Si le chemin de lancement contient soit "\Program Files" ou "\Program Files (x86)", le subpath de lancement est défini par la partie du chemin de lancement restant, une fois que la partie contenant "\Program Files" ou "\Program Files (x86)" est enlevée.Par exemple : Si dBASE plus est installé dans le dossier : C:\Program Files\dBASE\Plus <dBASE Plus subpath> sera défini par : \dBASE\Plus Si une application .exe est installée dans le dossier : C:\Program Files\VotreSociété\VotreApp <application launch subpath> sera défini par : \VotreSociété\VotreApp - Si le chemin de lancement NE contient pas "\Program Files" ou "\Program Files (x86)", alors le <.. subpath> est défini par le chemin restant après élimination de lidentificateur de lecteur et des deux points ou élimination du chemin UNC de niveau supérieur du chemin de lancement.Par exemple : Si dBASE Plus est lancé depuis : C:\dBASE\PLUS <application launch subpath> sera défini par : \dBASE\PLUS Une application réalisée avec dBASE Plus est lancée de : \ \VotreCheminUNC\VotreSociété\VotreApp <application launch subpath> est défini par : \VotreSociété\VotreApp Ensuite plus.exe ou plusrun.exe sassurera quun fichier .ini est chargé comme suit : Il cherche le fichier ini dans le chemin passé par lintermédiaire dun commutateur CS'il le trouve, il charge .ini à partir de ce chemin S'il ne l'a pas trouvé, Il cherche .ini dans <CSIDL_LOCAL_APPDATA>\<.... subpath>[\Bin] Si non trouvé, Il cherche.ini dans <CSIDL_COMMON_APPDATA>\<.... subpath>[\Bin] Si trouvé, il copie dans <CSIDL_LOCAL_APPDATA>\<.... subpath>[\Bin] Si non trouvé, Il cherche .ini dans le chemin de lancement de lEXE Si trouvé, il copie dans <CSIDL_LOCAL_APPDATA>\<.... subpath>[\Bin] Si non trouvé, Il crée le nouveau dossier plus.ini dans : <CSIDL_LOCAL_APPDATA>\<.... subpath>[\Bin] Le fichier .ini ouvert est maintenant situé dans <CSIDL_LOCAL_APPDATA>\<.... subpath>[\Bin] Détermine si oui ou non : :dBStartup:InitNewUser.pro est lancé la première fois par un utilisateur particulier qui lance dBASE Plus (ou une application de dBASE). Dans dBASE Plus, InitNewUser.pro créera les copies privées des divers
dossiers de convertisseurs et exemples comme suit : Dans une application dBASE, un InitNewUser.pro personnalisé peut être utilisé pour effectuer des tâches personnalisées lors de linstallation dun nouvel utilisateur. Définition des chemins Source Alias pour faire correspondre les
emplacements privés pour les Sources Alias suivantes : Détermine les chemins par défaut des Alias du BDE pour les noms dAlias suivants : dBASESamples dQuerySamples dBASEContax dBASESignup dBASETemp dQueryTemp Utilisé par dQuery pour déterminer lemplacement de : dquery.ini dquery temporary files My DataModules folder projexp.ini Project Explorer temporary files My Projects folder Utilisé par l'Assistant Web pour déterminer lemplacement pour ses fichiers temporaires.
Une fonction pour tester la présence de cette propriété.
Vous pouvez trouver un exemple d'utilisation dans applicationIni.cc, bdealias.cc, ccs_BDE.cc et rmAlias.cc qui souvent vérifient si cette propriété est supportée.
A ce jour (août 2013), il ne semble pas y avoir de difficulté particulière avec cette propriété. Sources : Guide de l'utilisateur dBase 2.80 dUflpPlus_AB.zip Retour à l'accueil Les informations de cette page sont données à titre indicatif et ne se substituent pas à celles contenues dans l'Aide de votre version de dBase qui reste la meilleure documentation.
© M.Abraham. |