Aller au contenu

Créer des variables systèmes


Aleck_Ultimate

Messages recommandés

EDIT : Titre du sujet modifié pour référencer au mieux le cours de (gile) du message suivant.

 

Bonjour à tous.

 

J'ais découvert récemment qu'il était possible de retrouver le dossier parent du dessin actif avec (getvar 'dwgprefix).

 

J'aimerais savoir s'il existe une liste de toutes ses variables contenant des adresses, parce que je n'ais pas réussit à en trouver une seul autre. Ou alors je n'ais pas compris que j'était tombé sur ce que je cherchait parce que c'était en anglais.

 

Dans ce cas précis je cherche l'adresse vers laquelle sont envoyés par défaut les nouvelles variables que l'on peut créer en base de registre avec setvar pour pouvoir nettoyer automatiquement les variables crées par un LISP. Je voudrait aussi savoir dans quelle mesure on peut temporairement modifier cette emplacement, si c'est de l'ordre du possible.

 

Le retrouver manuellement n'est pas un problème, il sufit de taper [Windovs + R] taper "regedit" (pour ouvrir la base de registre), puis [ctrl + F] et le nom de la variable crée. Par contre pour retrouver cette adresse quelquesoit la machine... bref, ça doit bien pouvoir se faire en codage, mais j'ais encor besoin de vous.

 

Merci.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

D'abord, il faut essayer d'être précis : on ne peut pas créer de variables système avec setvar, on peut créer des variables d'environnement avec setenv.

Pour retrouver ces variables, tu peux utiliser la fonction vlax-user-product-key qui retourne la clé du registre dans HKEY_CURRENT_USER (pour les plus vieilles versions d'AutoCAD la fonction était vlax-product-key).

(strcat "HKEY_CURRENT_USER\\" (vlax-user-product-key) "\\FixedProfile\\General")

 

Mais dans la mesure où tu vas devoir utiliser vl-registry-delete avec ce chemin, pourquoi ne pas carrément t'affranchir des fonctions setenv et getenv ainsi que des versions d'AutoCAD et créer tes propres clés dans le registre avec les fonctions vl-registry-* ?

 

Tu peux stocker le chemin dans une variable globale ou dans une fonction :

(setq *aleck-product-key* "HKEY_CURRENT_USER\\Software\\Aleck\\AutoLISP\\Variables")

ou

(defun aleck-product-key () "HKEY_CURRENT_USER\\Software\\Aleck\\AutoLISP\\Variables")

Et ensuite, pour écrire la valeur "42" dans la variable "var1" :

(vl-registry-write (aleck-product-key) "var1" "42")

pour lire la variable "var1" :

(vl-registry-read (aleck-product-key) "var1")

pour supprimer la variable "var1" :

(vl-registry-delete (aleck-product-key) "var1")

pour supprimer tout le contenu de la clé :

(vl-registry-delete (aleck-product-key))

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour un cours si détaillé. J'ais encore un sacré boulot devant moi.

 

Je n'avais entendu parler que de setvar et getvar, et je n'avais pas pensé à explorer les fonctions VL. En outre il ne me serait jamais venu à l'idée d'utiliser un defun pour stoker une adresse particulière. J'était resté bloqué sur l'idée que c'était juste pour faire des commandes ou des routines.

 

Plus j'en apprend est moins j'en sait... et en plus chez moi les affaires reprennent donc le LISP est en stand-by pour une durée indéterminée.

 

Néanmoins je me pose toujours la question des adresses particulières. Il m'en faudra une que je n'ais pas pensé à préciser dans mon message précédant, c'est comment retrouver l'adresse du LISP en cours d'utilisation ? J'ais dans l'idée d'ajouter une option "aide" à mon LISP qui irait ouvrir un fichier "Lisez_moi" stocké à l'emplacement du LISP quel qu'il soit ou une page internet (fort probablement du forum) s'il ne le trouve pas (et qu'il reçoit l'autorisation du l'utilisateur).

 

Merci.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut...

 

Très intéressante cette utilisation du registre...

 

Un grand merci à Maître (gile)... Je saurais m'en (re)servir...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité