1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD RegistreExiste sur WD24,25,26 et W10-W11 x64

Discussion dans 'Windev' créé par SavageBeast, Juin 13, 2023.

  1. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    67
    J'aime reçus:
    32
    Salut à tous ! Je tombe sur un problème "bloquant" pour utiliser la fonction RegistreExiste depuis les denières mises à jours de Windows 10 et sur Windows 11.

    Les versions de WD24 à 26 n'arrivent plus à utiliser cette fonction correctement, et retournent toujours un "Faux" lors du test de la clef, même si cette dernière existe.

    Je passe le code ci-dessous, il n'y a rien d'exceptionnel, je souhaite vérifier la présence de 2 runtime VisualStudio 10 en 32 et 64 bits. Si quelqu'un à une idée pour le faire fonctionner, je suis preneur (inutil de me dire de passer en WD27, ça bugge après la 83m. (Mais pour d'autres raisons), Merci

    PROCÉDURE PRO_CheckOSVS()
    sOSMode est une chaîne ANSI = SysVersionWindows(sysProcesseur)
    bKeyHasBeenRead est un booléen = Faux
    sResult est une chaîne ANSI = ""
    b32BitIsInstalled est un booléen = Faux
    b64BitIsInstalled est un booléen = Faux
    s32BitVersionBld est une chaîne ANSI = ""
    s64BitVersionBld est une chaîne ANSI = ""
    nStatus32BitToReturn est un entier = 0
    nStatus64BitToReturn est un entier = 0

    SELON sOSMode
    CAS "32"
    SI RegistreExiste("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86") = Vrai ALORS
    b32BitIsInstalled = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86","Installed",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    bKeyHasBeenRead = Faux
    SI b32BitIsInstalled = Vrai ALORS
    s32BitVersionBld = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86","Bld",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    SI s32BitVersionBld = "40219" ALORS
    nStatus32BitToReturn = 11 // 1 + 1 = 32Bit + Installed
    RENVOYER nStatus32BitToReturn
    FIN
    FIN
    FIN
    FIN
    FIN
    nStatus32BitToReturn = 10 // 1 + 0 = 32Bit + Not Installed
    RENVOYER nStatus32BitToReturn

    CAS "64"
    bKeyHasBeenRead = Faux

    nStatus32BitToReturn = 20 // 2 + 0 = 32Bit + Not Installed on x64
    SI RegistreExiste("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x86") = Vrai ALORS
    b32BitIsInstalled = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x86","Installed",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    bKeyHasBeenRead = Faux
    SI b32BitIsInstalled = Vrai ALORS
    s32BitVersionBld = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x86","Bld",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    nStatus32BitToReturn = 21 // 2 + 1 = 32Bit + Installed on x64
    FIN
    FIN
    FIN
    FIN

    nStatus64BitToReturn = 30 // 3 + 0 = 64Bit + Not Installed on x64
    SI RegistreExiste("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64") = Vrai ALORS
    b64BitIsInstalled = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64","Installed",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    SI b64BitIsInstalled = Vrai ALORS
    s64BitVersionBld = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64","Bld",bKeyHasBeenRead)
    SI bKeyHasBeenRead = Vrai ALORS
    nStatus64BitToReturn = 31 // 3 + 1 = 64Bit + Not Installed on x64
    FIN
    FIN
    FIN
    FIN


    SELON Vrai
    CAS nStatus32BitToReturn = 20 ET nStatus64BitToReturn = 30 : // 32Bit + 64Bit Not Installed on x64
    RENVOYER 500

    CAS nStatus32BitToReturn = 21 ET nStatus64BitToReturn = 30 : // 32Bit Installed on x64 + 64Bit Not Installed on x64
    RENVOYER 510

    CAS nStatus32BitToReturn = 20 ET nStatus64BitToReturn = 31 : // 32Bit Not Installed on x64 + 64Bit Installed on x64
    RENVOYER 501

    CAS nStatus32BitToReturn = 21 ET nStatus64BitToReturn = 31 : // 32Bit Installed on x64 + 64Bit Installed on x64
    RENVOYER 511

    AUTRE CAS

    FIN


    AUTRE CAS
    RENVOYER 99
    FIN
     
    Tags:
  2. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    67
    J'aime reçus:
    32
    Pardon, après la WD 27 87m, j'ai des problèmes majeurs.
     
  3. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    598
    J'aime reçus:
    328
    Bonjour,
    Cela ne viendrait-il pas "tout simplement" d'un droit d'accès à la BDR ?
    Sur la machine concernées, en mode console, essayes cela :
    Code (Text):
    REG QUERY HKLM\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64 /v Installed
    Code (Text):
    REG QUERY HKLM\WOW6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x86 /v Installed
    En ce qui concerne le mode 32bit, il manque la partie WOW6432Node dans ton chemin.
    A ce sujet, il serait souhaitable de baliser et d'indenter ta partie code ([_Code=windev] et [_/Code] il faut supprimer les "_") pour la rendre plus lisible
     
    #3 Dandypunk, Juin 15, 2023
    Dernière édition: Juin 15, 2023
  4. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    67
    J'aime reçus:
    32
    Bonjour DandyPunk, merci pour tes suggestions. A priori, pour la partie 32 bits, il me semble que l'OS ne génère pas de WOW6432, ce serait illogique, car il n'y pas de 64 bit sur une machine 32 bits...

    J'ai formatté un PC, et testé dessus, les problèmes que je rencontrais ont disparu, j'ai pu générer mon composant en WD27, et WD28... Il ne me reste plus qu'à réinstaller mes 2 laptops depuis zéro... (Pas content le garçon, au vu du boulot que ça représente...)

    A+...
     
    douldrk apprécie ceci.

Partager cette page

Chargement...