Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je n'arrive pas à récupérer le chemin du dossier Sybase dans la base de registre.
Le RegistryGet renvoi toujours -1.
Système : PB11.5 / Win7
Merci.
Voici mon code :
string ls_SybaseDir integer li li = RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Setup", "SYBASE", RegString!, ls_SybaseDir) if li < 0 then messagebox("Erreur système","Impossible de trouver le chemin du dossier Sybase.") else messagebox("ok",ls_SybaseDir) end if
Dernière modification par Krug (31-05-2012 10:10:35)
Hors ligne
C'est un Win7 64 bits ?
Tout ce que j'ai dans "\Software\sybase" concerne seulement SQL Anywhere et Sybase Central.
Par contre je vois bien un chemin vers Sybase dans la partie WOW6432, sauf que ça s'appelle "PBRootLocation" et que c'est pas dans une clé "Setup" :
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sybase : PBRootLocation = C:\Program Files (x86)\Sybase
(J'ai aussi un PB11.5 ici)
Hors ligne
Oui c'est bien une version 64.
Le chemin que tu m'as donné, marche nickel !
Je n'avais pas vu le répertoire Wow6432Node.
Merci pour ta réactivité.
Hors ligne
Krug a écrit:
Je n'avais pas vu le répertoire Wow6432Node.
C'est un piège des nouveaux windows 64bits
Une appli 32 bits non modifiée pour être compatible 64 a l'impression d'utiliser la base de registre normale, sauf que l'OS détourne les chemins vers Wow6432Node (WoW64 = Windows on Windows64).
De même que lorsque l'appli s'installe ou fonctionne, elle croit qu'elle est dans \Program Files, sauf qu'elle est en fait dans \Program Files(x86) (ce comportement peut être désactivé via l'API windows).
Là où ça devient débile, c'est que le nouveau système 64 a toujours ses dlls et autres exes dans \Windows\System32 (! ) et que la couche de compatibilité 32bits est dans \Windows\SysWOW64\ (!!! ) Entre autres, le gestionnaire ODBC32, qui n'affiche pas les mêmes sources que celui de \System32 (il affiche les sources créées par les applis 32bits). (C'est le progrès, vu par MS )
Hors ligne