BUZZ2K
Messages postés64Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 septembre 2008
-
6 juin 2005 à 14:46
BUZZ2K
Messages postés64Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 septembre 2008
-
8 juin 2005 à 19:20
Bonjour,
pour mon appli, je fait appel a VB6.exe dans un Shell, le pb c'est que
le chemin n'est pas le meme sur tt les poste, il faudrait donc que je
trouve le chemin de vb avant d'en faire appel.
En cherchant sur le forum j'ai trouver sa:
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_DYN_DATA = &H80000004
Public Enum HCle
HKeyLocalMachine = 0
HKeyCurrentUser = 1
HKeyClassesRoot = 2
HKeyUsers = 3
HKeyDynamicData = 4
End Enum
'API nécessaires
'pour créer ou ouvrir une clé
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal HKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
'pour lire une valeur
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
(ByVal HKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long) As Long
Private Function HKConvert(HK As HCle) As Long
If HK 2 Then HKConvert HKEY_CLASSES_ROOT
If HK 1 Then HKConvert HKEY_CURRENT_USER
If HK 0 Then HKConvert HKEY_LOCAL_MACHINE
If HK 3 Then HKConvert HKEY_USERS
If HK 4 Then HKConvert HKEY_DYN_DATA
End Function
Public Function LireValeur(HK As HCle, chemin As String, valeur As String) As String
' Va chercher le chemin de l'executable d'un appli
' Variables entrées : Chemin de l'appli ds la base de registre
' Variable retour : Chemin de l'exe de l'appli
Dim lng As Long
Dim Buff As Long
Buff = 0
Buff = RegCreateKey(HKConvert(HK), chemin, lng)
If Buff = 0 Then RegQueryValueEx lng, valeur, 0&, 1, 0&, Buff
Apres il faut appeller la fonction lireValeur avec certain parametres,
le pbc'est que je n'arrive pas a m'en servir, et que de plus dans la
base de registre
je n'arrive pas a trouver VB (manuellement)
Si quelqu'un sait comment faire , Merci beaucoup !
BUZZ2K
Messages postés64Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 septembre 2008 6 juin 2005 à 15:50
Merci mec sa marche, apparement je cherchait pas au bon endroti dans la
Bdr, par contre par curiosité, tu utilise quoi comme fonction pour
chercher dans la Bdr ?
Private Function GetRootKey(Key As String) As Long
If Left(Key, 17) "HKEY_CURRENT_USER" Or Left(Key, 4) "HKCU" Then GetRootKey = HKEY_CURRENT_USER
If Left(Key, 18) "HKEY_LOCAL_MACHINE" Or Left(Key, 4) "HKLM" Then GetRootKey = HKEY_LOCAL_MACHINE
If Left(Key, 17) "HKEY_CLASSES_ROOT" Or Left(Key, 4) "HKCR" Then GetRootKey = HKEY_CLASSES_ROOT
If Left(Key, 10) "HKEY_USERS" Then GetRootKey HKEY_USERS
If Left(Key, 19) "HKEY_CURRENT_CONFIG" Then GetRootKey HKEY_CURRENT_CONFIG
If Left(Key, 21) "HKEY_PERFORMANCE_DATA" Then GetRootKey HKEY_PERFORMANCE_DATA
If Left(Key, 13) "HKEY_DYN_DATA" Then GetRootKey HKEY_DYN_DATA
End Function
J'ai pas mis les déclarations (c'est déjà bien long). J'ai fait le
module de telle manière qu'il fonctionne de la même façon que les
commades WhShell (regread, regwrite etc...).
BUZZ2K
Messages postés64Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 septembre 2008 8 juin 2005 à 19:20
Oki, ben je matterai ta source, car c'est supers pratik sa de checker la Bdr, jvien de decouvrir pr mon prog la, c pratik pr les shell (dans mon cas...)
Encore merci !