Nous sommes actuellement le 13 Juil 2026, 18:45

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 8 message(s) ] 
Auteur Message
MessagePublié: 16 Sep 2003, 11:19 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Je dois faire un script en VB qui ajoute un fichier dans un répertoire d'un autre programme. Je ne sais pas ou se programme est installé, mais il y a une clé dans la base de registre qui contient cette information.

Code :
\HKEY_LOCAL_MACHINE\SOFTWARE\MapInfo\MapX\4.0 CommonDLLDir


Comment faire pour récupérer les données de cette clé en VBScript ?

Merci


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Sep 2003, 11:51 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 06 Fév 2002, 22:42
Message(s) : 185
Localisation : Québec
Voici un exemple que je m'étais construit:

Code :
' Ce fichier est à titre d'exemple pour la lecture/écriture/suppression de clés dans la base de régistres.
'
' *** Attention: certains anti-virus bloquent l'écriture dans le registre ***
'
'
' Abréviation des clés
'
' HKEY_CURRENT_USER     HKCU
' HKEY_LOCAL_MACHINE    HKLM
' HKEY_CLASSES_ROOT     HKCR
' HKEY_USERS            HKEY_USERS
' HKEY_CURRENT_CONFIG   HKEY_CURRENT_CONFIG
'
'
'
'
' Types de données disponibles:
'
' Type          Description             Sous la forme de
'-----------------------------------------------------------------------
' REG_SZ        Une chaîne              Une chaîne
' REG_DWORD     Un nombre               Un nombre entier
' REG_BINARY    valeur binaire          Un VBArray de nombres entiers
' REG_EXPAND_SZ Une chaîne extensible   Une chaîne
'               (ex:"%windir%\\calc.exe")
' REG_MULTI_SZ   Un tableau de chaînes   Un VBArray de chaînes
'
'
'
'
'Déclaration des variables
Dim WshShell, bKey

'Création de l'objet
Set WshShell = WScript.CreateObject("WScript.Shell")

'Exemple d'écriture dans la base de régistres
'Écriture de la valeur "(Default)"
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\", 1, "REG_BINARY"

'Écriture d'une valeur nommée
WshShell.RegWrite "HKCU\Software\ACME\FortuneTeller\MindReader", "Goocher!", "REG_SZ"

'Exemple de lecture
bKey = WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\")
WScript.Echo WshShell.RegRead("HKCU\Software\ACME\FortuneTeller\MindReader")

'Exemple de supression
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\MindReader"
WshShell.RegDelete "HKCU\Software\ACME\FortuneTeller\"
WshShell.RegDelete "HKCU\Software\ACME\"

_________________
HTH

:arrow: This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Sep 2003, 13:10 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Merci c'est exactement ce que je voulais :D


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Sep 2003, 14:47 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Bon, j'ai un autre problème... J'utilise l'installeur de Visual Studio.NET pour installer mon application. Je croyais que le path de mon application était copier dans la base de registre et malheureusement non... J'aimerais pouvoir l'ajouter, mais je n'y arrive pas. Je peux ajouter une clé facilement, mais comment faire pour lui spécifier que c'est le path que l'utilisateur à choisi que je veux ajouter ?

Merci


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Sep 2003, 15:10 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 06 Fév 2002, 22:42
Message(s) : 185
Localisation : Québec
L'installateur de .NET utilise surement la technologie Windows Installer. Avec InstallShield on peut connaître, via des script VBS, certaines variables "internes". Je ne sais pas si ces variables sont propriétaires à InstallShield ou standard avec Windows Installer mais ça vaut le coup d'essayer:

Code :
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment

InstallPath = Session.Property("INSTALLDIR")
msgbox InstallPath



Si cela ne fonctionne pas je te suggère de lancer un autre "thread" sur le forum pour que ceux qui connaissent bien l'installateur de .NET puissent voir ton message.

Si au contraire ça fonctionne, j'aimerais bien le savoir!

_________________
HTH

:arrow: This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 17 Sep 2003, 14:25 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Malheureusement ça n'a pas fonctionner. J'obtiens une erreur du genre "Une erreur s'est produite dans un script d'installation...".


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 17 Sep 2003, 15:01 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 06 Fév 2002, 22:42
Message(s) : 185
Localisation : Québec
J'ai fait quelques tests avec InstallShield Express et ça fonctionne. Le code que je t'ai donné était un peu erronné. Voici le code corrigé:

Code :
Dim InstallPath

InstallPath = Session.Property("INSTALLDIR")

MsgBox InstallPath


Après avoir fait quelques recherches j'ai découvert que l'objet Session fait partit de Windows Installer.

MSDN a écrit:
The Property property of the Session object is a read-write property that represents the
string value of a named installer property, as maintained by the Session object in the in-memory Property table, or,
if it is prefixed with a percent sign (%), the value of a system environment variable for the current process.
Either string or integer values may be supplied. A non-existent property or environment variable is equivalent
to its value being Null.


object.Property(name)

object : Session object
name: Required case-sensitive name of a property, or a case-insensitive name of an environment variable prefixed by a percent sign (%).



(source: MSDN, Platform SDK: Windows Installer: Automation Interface: Automation Interface Reference: Session Object).

Mieux encore: on peut aller lire d'autres valeurs de la table Property. J'ai essayé "ProductName" et ça fonctionne. Je te suggère d'essayer encore un peu avant de lancer la serviette...

_________________
HTH

:arrow: This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 19 Sep 2003, 14:36 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
Voiçi un script test que j'ai fait pour mon installation:

Code :
msgbox "this is a test"

Dim InstallPath
InstallPath = Session.Property("INSTALLDIR")
MsgBox InstallPath


Lorsque j'exécute l'installation, j'ai une première boîte de dialog qui m'affiche "this is a test" et une seconde qui est vide.


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 8 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site