Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-04-2011, 20:05   #1
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
[C++] Problemi Con Funzione RegEnumKey()

Buona sera a tutti e soprattutto buona Pasqua!!

Avrei un problema con questo "semplice" programma:
Codice:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;

main(){
       long result; //Variabile per verificare la corretta esecuzione di una funzione
       HKEY hKey;
       TCHAR percKey[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; //Percorso chiave di registro
       TCHAR nameKey[256];
       int numKey = 0;
       
       result = RegOpenKey(HKEY_LOCAL_MACHINE, percKey, &hKey);
       if (result != ERROR_SUCCESS){
                  cout<<"Errore Apertura Percorso Del Registro!!";
                  getch();
                  return 1;
                  }
       cout<<"Apertura Percorso Del Registro Avvenuta Con Successo!!\n\n\n";
       
       {
             result = RegEnumKey(hKey, numKey, nameKey, 256);
             cout<<"\nNome Chiave: "<<nameKey;
             numKey ++;
       } while (result != ERROR_NO_MORE_ITEMS);
             
       RegCloseKey(hKey);
       getch();
}
Il problema riguarda l'output, nel senso che il programma mi restituisce per il nome della chiave solo il valore "Nome", una sola volta, e poi continua a ciclare all'infinito (finchè non lo chiudo manualmente).

Chiedo cortesemente una soluzione.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2011, 20:17   #2
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
Quote:
Originariamente inviato da skeleton Guarda i messaggi
Buona sera a tutti e soprattutto buona Pasqua!!

Avrei un problema con questo "semplice" programma:
Codice:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;

main(){
       long result; //Variabile per verificare la corretta esecuzione di una funzione
       HKEY hKey;
       TCHAR percKey[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; //Percorso chiave di registro
       TCHAR nameKey[256];
       int numKey = 0;
       
       result = RegOpenKey(HKEY_LOCAL_MACHINE, percKey, &hKey);
       if (result != ERROR_SUCCESS){
                  cout<<"Errore Apertura Percorso Del Registro!!";
                  getch();
                  return 1;
                  }
       cout<<"Apertura Percorso Del Registro Avvenuta Con Successo!!\n\n\n";
       
       {
             result = RegEnumKey(hKey, numKey, nameKey, 256);
             cout<<"\nNome Chiave: "<<nameKey;
             numKey ++;
       } while (result != ERROR_NO_MORE_ITEMS);
             
       RegCloseKey(hKey);
       getch();
}
Il problema riguarda l'output, nel senso che il programma mi restituisce per il nome della chiave solo il valore "Nome", una sola volta, e poi continua a ciclare all'infinito (finchè non lo chiudo manualmente).

Chiedo cortesemente una soluzione.
Codice:
       {
             result = RegEnumKey(hKey, numKey, nameKey, 256);
             cout<<"\nNome Chiave: "<<nameKey;
             numKey ++;
       } while (result != ERROR_NO_MORE_ITEMS);

se il codice è proprio questo.. allora hai dimenticato di scrivere do prima della graffa, quindi hai un blocco che viene eseguito una volta e un while senza body con la condizione che rimane vera e looppa
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 09:50   #3
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Grazie mille per il suggerimento, non c'avevo riflettuto!!
Ho pensato di usare un ciclo for anzichè un do while per ridurre le righe di codice, e sembra che funzioni:

Codice:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;

main(){
       long result; //Variabile per verificare la corretta esecuzione di una funzione
       HKEY hKey;
       TCHAR percKey[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; //Percorso chiave di registro
       TCHAR nameKey[256];
       
       result = RegOpenKey(HKEY_LOCAL_MACHINE, percKey, &hKey);
       if (result != ERROR_SUCCESS){
                  cout<<"Errore Apertura Percorso Del Registro!!";
                  getch();
                  return 1;
                  }
       cout<<"Apertura Percorso Del Registro Avvenuta Con Successo!!\n\n\n";
       
       for (int numKey = 0; result != ERROR_NO_MORE_ITEMS; numKey ++){
           result = RegEnumKey(hKey, numKey, nameKey, 256);
           cout<<"\nNome Chiave: "<<nameKey;
           }
             
       RegCloseKey(hKey);
       getch();
}
Ancora Grazie Mille!!

Ultima modifica di skeleton : 25-04-2011 alle 09:55.
skeleton è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Lenovo presenta nuove soluzioni per l'IA...
OVHcloud potenzia la Quantum Platform: i...
Octopus Energy lancia Nook, la sua gamma...
IBM presenta il primo chip al mondo sott...
Qualcomm Dragonfly debutta nel settore d...
Scopa elettrica Proscenic P11 Ultra+ a 8...
Napoli capitale italiana del calcolo qua...
Emma avrebbe dovuto contribuire alla sov...
Tesco abbandonerà VMware e migrer...
Driver AMD rotti su Windows 10? Rilascia...
Il salto quantistico del 2025 di Microso...
Licenziato da Google per aver reso Works...
Prime Day Action Cam, DJI e Insta360 si ...
La rete delle PMI non può pi&ugra...
Windows 11 compie 5 anni: dai requisiti ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v