Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Plaoo
    Registrato dal
    Sep 2009
    Messaggi
    16

    [C]Lettura di una chiave di registro

    Salve a tutti sto cercando di scrivere un programma che mi restituisca i valori contenuti in una chiave di registro, la chiave è HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run che riguarda i programmi che si avviano all' avvio del sistema. Il mio progetto è visualizzare le chiavi con il proprio valore per controllare in un attimo se sono presenti programmi indesiderati (virus o malware). Ho provato RegGetValue, RegOpenKey e altre che adesso non ricordo...Ho fallito con tutte Potete darmi una mano??

  2. #2
    Le funzioni sono quelle giuste, devi usarle correttamente insieme... studiati la parte relativa al registro nel Platform SDK, c'è tutto quello che ti serve.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Plaoo
    Registrato dal
    Sep 2009
    Messaggi
    16
    Sisi sto procedendo con msdn.com ma c'è un problema non riesco ad assegnare il valore restituito ad una stinga... (comunque adesso sto provando RegQueryInfoKey).

    Sto cambiando completamente metodo
    RegOpenKeyEx() - To open up a registry key
    RegEnumKeyEx() - To get a list of keys in the key opened by RegOpenKeyEx().
    RegEnumValue() - Get a list of the values in a registry key
    RegGetValue() - Get the data that the registry value contains.
    RegCloseKey() - To close the key when you are done with it.

    Sto seguendo questa procedura...speriamo bene

  4. #4
    Utente di HTML.it L'avatar di Plaoo
    Registrato dal
    Sep 2009
    Messaggi
    16
    Non ci riesco un aiuto?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da Plaoo
    Non ci riesco un aiuto?
    Cioe' ? Cosa hai scritto ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di Plaoo
    Registrato dal
    Sep 2009
    Messaggi
    16
    Allora ho scritto:
    codice:
    HKEY hKey;
    TCHAR *prova[666];
    RegOpenKeyA(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey);
    RegQueryValueA(hKey,"VBoxTray", NULL, REG_SZ, &prova);
      printf("%s",prova);
    Adesso come posso continuare?? per vedere le chiavi presenti? su \Run? ho scritto giusto RegOpenKey??

  7. #7
    Utente di HTML.it L'avatar di Plaoo
    Registrato dal
    Sep 2009
    Messaggi
    16

    RISOLTO

    RISOLTO
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    
    int main(int argc, char *argv[])
    {
        LONG result = ERROR_SUCCESS;
        HKEY hKey = NULL;
        DWORD nome_buffer_dime = 1024;
        DWORD dati_buffer_dime = 1024;
        
        TCHAR nome_buffer[1024];
        char dati_buffer[1024];
        int indice = 0;
        
        TCHAR key_nome[]= "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Ran";
        
        result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key_nome, 0, KEY_QUERY_VALUE, &hKey);
        
        if (result != ERROR_SUCCESS)
        {//Errore nella chiave
           printf("Impossibile aprire il registro...\n\n"); 
           return 0;
        }
        while(ERROR_NO_MORE_ITEMS != (result=RegEnumValueA(hKey, indice,nome_buffer,&nome_buffer_dime, NULL,NULL,(LPBYTE)dati_buffer, &dati_buffer_dime)))
        {
                                  printf("%s\n", dati_buffer);
                                  ++index;
        }
        system("PAUSE");
        return 0;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.