Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3296 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Base de registre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Base de registre

n°799567
mp75
Posté le 19-07-2004 à 13:56:04  profilanswer
 

Salut je voulais savoir s'il y a une fonction en VBS qui permet de recuperer les sous cles dans la base de registre pour afficher les valeurs !
Merci

mood
Publicité
Posté le 19-07-2004 à 13:56:04  profilanswer
 

n°799583
alknon
Posté le 19-07-2004 à 14:06:58  profilanswer
 

set c=CreateObject("WScript.Shell" )
c.RegRead("HKCU\Software\CompanyName\ProductName\Key\Subkey\valuestring" )

n°799584
alknon
Posté le 19-07-2004 à 14:07:31  profilanswer
 
n°799630
mp75
Posté le 19-07-2004 à 15:18:57  profilanswer
 

Non en fait c avoir toutes les valeurs d'une sous clef en un seul coup

n°799653
Zobman
hek het a shroot pill!
Posté le 19-07-2004 à 15:45:38  profilanswer
 

desolé la j'ai pas le temps de te le faire en vbs (WMI en fait)
voici un copier/coller issue du sdk wmi
 

Citation :


Platform SDK: Windows System Information  
Enumerating Registry Subkeys
 
The following example demonstrates the use of the RegQueryInfoKey, RegEnumKeyEx, and RegEnumValue functions. The hKey parameter passed to each function is a handle to an open key. This key must be opened before the function call and closed afterward.
 
 
// QueryKey - Enumerates the subkeys of key, and the associated  
//    values, then copies the information about the keys and values  
//    into a pair of edit controls and list boxes.  
// hDlg - Dialog box that contains the edit controls and list boxes.
// hKey - Key whose subkeys and values are to be enumerated.
 
void QueryKey(HWND hDlg, HANDLE hKey)  
{  
    CHAR     achKey[MAX_PATH];  
    CHAR     achClass[MAX_PATH] = "";  // buffer for class name  
    DWORD    cchClassName = MAX_PATH;  // size of class string  
    DWORD    cSubKeys;                 // number of subkeys  
    DWORD    cbMaxSubKey;              // longest subkey size  
    DWORD    cchMaxClass;              // longest class string  
    DWORD    cValues;              // number of values for key  
    DWORD    cchMaxValue;          // longest value name  
    DWORD    cbMaxValueData;       // longest value data  
    DWORD    cbSecurityDescriptor; // size of security descriptor  
    FILETIME ftLastWriteTime;      // last write time  
 
    DWORD i, j;  
    DWORD retCode, retValue;  
 
    CHAR  achValue[MAX_VALUE_NAME];  
    DWORD cchValue = MAX_VALUE_NAME;  
    CHAR  achBuff[80];  
 
    // Get the class name and the value count.  
    RegQueryInfoKey(hKey,        // key handle  
        achClass,                // buffer for class name  
        &cchClassName,           // size of class string  
        NULL,                    // reserved  
        &cSubKeys,               // number of subkeys  
        &cbMaxSubKey,            // longest subkey size  
        &cchMaxClass,            // longest class string  
        &cValues,                // number of values for this key  
        &cchMaxValue,            // longest value name  
        &cbMaxValueData,         // longest value data  
        &cbSecurityDescriptor,   // security descriptor  
        &ftLastWriteTime);       // last write time  
 
    SetDlgItemText(hDlg, IDE_CLASS, achClass);  
    SetDlgItemInt(hDlg, IDE_CVALUES, cValues, FALSE);  
 
    SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),  
        LB_ADDSTRING, 0, (LONG) ".." );  
 
    // Enumerate the child keys, until RegEnumKeyEx fails. Then  
    // get the name of each child key and copy it into the list box.  
 
    SetCursor(LoadCursor(NULL, IDC_WAIT));  
    for (i = 0, retCode = ERROR_SUCCESS;  
            retCode == ERROR_SUCCESS; i++)  
    {  
        retCode = RegEnumKeyEx(hKey,  
                     i,  
                     achKey,  
                     MAX_PATH,  
                     NULL,  
                     NULL,  
                     NULL,  
                     &ftLastWriteTime);  
        if (retCode == (DWORD)ERROR_SUCCESS)  
        {
            SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),  
                LB_ADDSTRING, 0, (LONG) achKey);  
        }
    }  
    SetCursor(LoadCursor (NULL, IDC_ARROW));  
 
    // Enumerate the key values.  
    SetCursor(LoadCursor(NULL, IDC_WAIT));  
 
    if (cValues)  
    {
        for (j = 0, retValue = ERROR_SUCCESS;  
                j < cValues; j++)  
        {  
            cchValue = MAX_VALUE_NAME;  
            achValue[0] = '\0';  
            retValue = RegEnumValue(hKey, j, achValue,  
                &cchValue,  
                NULL,  
                NULL,    // &dwType,  
                NULL,    // &bData,  
                NULL);   // &bcData  
 
            if (retValue == (DWORD) ERROR_SUCCESS )  
            {  
                achBuff[0] = '\0';  
 
                // Add each value to a list box.  
                if (!lstrlen(achValue))  
                    lstrcpy(achValue, "<NO NAME>" );  
                wsprintf(achBuff, "%d) %s ", j, achValue);  
                SendMessage(GetDlgItem(hDlg,IDL_LISTBOX2),  
                    LB_ADDSTRING, 0, (LONG) achBuff);  
            }  
        }
 
    SetCursor(LoadCursor(NULL, IDC_ARROW));  
}


 
ps: je suis sur qu'il a moyen de faire BEAUCOUP plus cours en vbs/wmi


---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
n°799658
mp75
Posté le 19-07-2004 à 15:51:19  profilanswer
 

Ok meric et sinon pour avoir la liste des sous cles y a une fonction

n°799661
Zobman
hek het a shroot pill!
Posté le 19-07-2004 à 15:53:26  profilanswer
 

tiens, j'avais raison
voila la version en vbs beaucoup plus simple (utilise le wmi aussi)
j'ai essayer de la simplifier au max  
 

Citation :


const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_  
strComputer & "\root\default:StdRegProv" )
 
strKeyPath = "SYSTEM\CurrentControlSet\Services"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
 
For Each subkey In arrSubKeys
    msgbox subkey
Next


Message édité par Zobman le 19-07-2004 à 15:55:37

---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Base de registre

 

Sujets relatifs
base de registreAutoIt et base de registre
lire dans la base du registre en C++[C++]Lire une valeur dans la base de registre
[Java] Acceder a la Base de RegistrePeut-on lire/écrire dans la base de registre ?
Modification du masque de sous réseau via la base de registreAPI win 32 (base de registre)
[VB Général] Base de registre - Comment sécuriser une applicationPrbl pour importer dans la base de registre
Plus de sujets relatifs à : Base de registre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR