1. #1
    Membre actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2008
    Messages : 730
    Points : 257
    Points
    257

    Par défaut Base de registre- programmation VB6 et InstallShield

    Bonjour à tous,

    N'aimant pas ne pas comprendre ce que je fait et pourquoi je viens à vous.

    Nous développons des logiciels pour nos systèmes pour Windows depuis des années en VB6.

    Nos packages d'installation sont réalisé avec InstallShield.

    Aillant des fichiers commun pour le fonctionnement de nos logiciels, dans InstallShield nous demandons d'installer les logiciels au même endroit.
    Pour ce faire dans le paramètre [INSTALLDIR] de "General information" nous avons indiqué HKEY_LOCAL_MACHINE\SOFTWARE\NotreSOCIETE\InstallDir.

    Ainsi après l'installation du 1er de nos logiciels sur le PC client, si le client change le lieu d'installation par exemple C:\DUDULE. InstallShield propose bien pour les suivants le lieu de l'installation du 1er (C:\DUDULE). Sa cela fonctionne bien.

    Maintenant nos logiciels sont sécurisé avec des licences et j'ai un logiciel de gestion de ces licences. Ce logiciel va recherche le lieu d'installation des autre et pour ce faire je lui demande d'aller récupérer dans la BDR la clef "HKEY_LOCAL_MACHINE\SOFTWARE\NotreSOCIETE\InstallDir".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim shellBdR As New WshShell
        Dim txtClef
        txtCle = shellBdR.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SPS\InstallDir")
    Sur mon PC (Win7 x64) cela fonctionne parfaitement, il m'indique bien "C:\DUDULE", hors sur ma virtual machine (Win7 x64) vierge (juste installation de Windows) il plante à la lecture de cette clef.

    Et la je comprend plus rien, car du coup en regardant sur mon PC (celui qui fonctionne) la clef "HKEY_LOCAL_MACHINE\SOFTWARE\NotreSOCIETE\InstallDir" n'existe pas, alors que le code ci dessus me la trouve. InstallShield la trouve aussi puisqu'il propose bien l'installation de nos autres logiciels sur C:\DUDULE

    Je peux du coup comprendre pourquoi cela plante sur la machine virtuel, mais pourquoi cela fonctionne sur mon PC !!!
    Je précise que sur ma machine virtuel si j'essaie d'installer un 2eme de nos logiciels il m'indique bien le nouvel emplacement (par défaut c'est dans "Program Files"). Donc installshield continu de bien trouver la clef.

    Je mi perd. En cherchant un peu j'ai vu qu'il peut y avoir comme des liens symboliques dans la DBR.

    Auriez vous quelques informations afin que je sois moins bête, même si cela va être difficile

    J'ai pallié à ce problème en obligeant InstallShield à me créer la clé HKEY_LOCAL_MACHINE\SOFTWARE\NotreSOCIETE\InstallDir avec pour valeur [INSTALLDIR] et la plus de souci, mon logiciel de gestion de licence ne plante plus mais j'aimerais comprendre ce qu'il se passe, pour quoi sur mon PC même VB6 me trouve la clef alors qu'elle n'y est pas dans la BDR à cet emplacement avec Regedit et du coup pourquoi cela ne fonctionne pas pareil avec ma machine virtuel (même OS) alors que InstallShield lui trouve toujours la clef. Mais cela me gène sur les produits déjà installés

    Merci pour votre savoir.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 431
    Points : 38 045
    Points
    38 045

    Par défaut

    Ton PC et ta VM, ont-ils les mêmes réglages concernant l'UAC?
    Ton InstallShield+VB6, a-t-il un manifeste permettant de demander l'élévation lors du lancement?
    As-tu fait une recherche de "C:\DUDULE" dans le Registre de ta VM?
    etc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2008
    Messages : 730
    Points : 257
    Points
    257

    Par défaut

    Bonjour Médinoc,

    Citation Envoyé par Médinoc Voir le message
    Ton PC et ta VM, ont-ils les mêmes réglages concernant l'UAC?
    J'avais un doute mais oui ils ont la même configuration (niveau minimal). Mais mon PC est gérer par l'IT avec un compte administrable en réseau, alors que ma VM est brut, sans artifice dut à la politique de l'IT.

    Citation Envoyé par Médinoc Voir le message
    Ton InstallShield+VB6, a-t-il un manifeste permettant de demander l'élévation lors du lancement?
    J’avoue qu'en vous lisant je ne savais pas de quoi cela parlait (manifeste), j'ai donc cherché un peu et si j'ai bien compris je n'est pas personnellement augmenté l’élévation au lancement, mais je ne sais pas ou trouver un paramètre ou fichier pouvant m'en assurer. Je n'est pas ajoutés dans les propriétés de l'exe des changements de privilèges.
    Si je ne répond à la question merci de m'éclaircir.

    Citation Envoyé par Médinoc Voir le message
    As-tu fait une recherche de "C:\DUDULE" dans le Registre de ta VM?
    etc.
    J'en ai plusieurs, mais dans différente clefs dont dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\Components\Une clef en hexa\ et CUDULE se trouve sous une chef hexa lui aussi, aucune clef ne correspond au "Product Code" ou "Upgrade Code" d'installshield pour l'un des softs sur lequel je travail actuellement.
    J'en ai plusieurs dans une clef "InstallLocation" qui contient mon emplacement. exemple: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\clef hexa\InstallProperties, pour chacun de nos logiciels installés apparemment.

    J'ai enfin trouvé un installDir=C:\DUDULE\ dans

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NotreSOCIETE

    Il y a donc "Wow6432Node" qui c'est inséré.


    Merci d'avoir pris le temps de me répondre.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 431
    Points : 38 045
    Points
    38 045

    Par défaut

    Wow6432Node, comme son nom l'indique, c'est pour la bitness du programme. Mais ça ne devrait rien changer si ta VM et ton PC ont la même bitness...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : septembre 2008
    Messages : 4 349
    Points : 8 782
    Points
    8 782

    Par défaut

    Ton programmes est 32 bits et InstallShield aussi manifestement.

    Les applications 32 bits sont par défaut redirigées sous Wow6432Node. Elles pensent accéder à HKLM\SOFTWARE\NotreSOCIETE mais en fait lisent/écrivent dans HKLM\SOFTWARE\Wow6432Node\NotreSOCIETE. Cette redirection est transparente et gérée par l'OS.

    Lorsque tu utilises RegEdit, c'est par défaut la version 64 bits et pour voir tes clés, tu dois regarder dans Wow6432Node. Mais tu peux aussi lancer la version 32 bits de RegEdit (située dans C:\Windows\SysWOW64) et là tu retombes sur ce que voit ton app (ou InstallShield)

  6. #6
    Membre actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2008
    Messages : 730
    Points : 257
    Points
    257

    Par défaut

    Citation Envoyé par Andnotor Voir le message
    Ton programmes est 32 bits et InstallShield aussi manifestement.

    Les applications 32 bits sont par défaut redirigées sous Wow6432Node. Elles pensent accéder à HKLM\SOFTWARE\NotreSOCIETE mais en fait lisent/écrivent dans HKLM\SOFTWARE\Wow6432Node\NotreSOCIETE. Cette redirection est transparente et gérée par l'OS.

    Lorsque tu utilises RegEdit, c'est par défaut la version 64 bits et pour voir tes clés, tu dois regarder dans Wow6432Node. Mais tu peux aussi lancer la version 32 bits de RegEdit (située dans C:\Windows\SysWOW64) et là tu retombes sur ce que voit ton app (ou InstallShield)
    Super merci pour ces explications, je vérifie sa demain.

    Cela explique pourquoi je ne le voie pas sur mon PC à l'adresse indiquée.
    Par contre pourquoi cela plante sur la VM ?? je regarde demain, car je me suis moins attardé du coup sur celui la.

    Quand à mon programme je suis même pas sur qu'il soit 32 bits, VB6...lol

  7. #7
    Membre actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2008
    Messages : 730
    Points : 257
    Points
    257

    Par défaut

    Bonjour,

    Je pense que mon souci sur ma VM viens d'installshield.

    Pour le moment je n'arrive pas à trouver le paramètre qui va bien, même en comparant avec d'autre projet installShield qui eux fonctionne (voir la suite).

    Je viens de m’apercevoir qu'Installshield m'installe mon logiciel pas comme d'habitude, dans "C:\Program File (x86)", mais dans "C:\Program Files" comme si c'etait une application 64 bits ce qui n'est pas le cas.

    Avez vous une idée du paramètre à modifier ?

    Merci

  8. #8
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 994
    Points : 23 822
    Points
    23 822

    Par défaut

    Citation Envoyé par megamario Voir le message
    Quand à mon programme je suis même pas sur qu'il soit 32 bits, VB6...lol
    Avec VB6, il n'y a aucun doute possible, tu es bien en 32 bits. VB6 ne sais pas faire du 64bits.
    Lorsqu'il est sorti, on imaginait même pas qu'un jour on passerait au 64bits (bon, ok, j'exagère un peu là )
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  9. #9
    Membre actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2008
    Messages : 730
    Points : 257
    Points
    257

    Par défaut

    Citation Envoyé par sevyc64 Voir le message
    Avec VB6, il n'y a aucun doute possible, tu es bien en 32 bits. VB6 ne sais pas faire du 64bits.
    Lorsqu'il est sorti, on imaginait même pas qu'un jour on passerait au 64bits (bon, ok, j'exagère un peu là )
    Merci sevyc64, mais en disant cela je souhaite apporter un peu d'humour.

Discussions similaires

  1. Recherche d'un texte dans la base de registre en VB6
    Par Menerlach dans le forum Téléchargements
    Réponses: 1
    Dernier message: 30/03/2015, 23h06
  2. [PowerShell] Recherche d'un programme dans la base de registre
    Par maxime1452 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 25/05/2011, 13h47
  3. [VB6]ecrire une chaine de byte dans la base de registre
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 17/12/2008, 10h50
  4. [vb6]modifier une valeur dans la base de registre
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/11/2007, 22h04
  5. Réponses: 6
    Dernier message: 07/02/2007, 04h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo