× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 C++ problème clef registre
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
lawawa
  Posté le 03/09/2010 @ 01:10 
Aller en bas de la page 
Petit astucien

Bonjour, il y a plusieur jour que je travail a un projet, c'est a dire faire un panoplie d'optimisation automatiquement, avais qu'a demander quelque variable a l'usager. Je suis maintenant dans une impasse pas capable en c++ de changer une variable dans une clef de registre je vous explique:

Je veux pouvoir demander a l'utilisateur combien il a de mémoire cache L2 par la suite changer ce nombre en hexadécimal et aller le porter dans la clef secondLevelDataCache qui est dans HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management pour l'instant je suis a ce code:

#include <cstdlib>
#include <iostream>
#include <windows.h>

std::cout << "Combien de memoire cache: ";int nb;
std::cin >> nb;

HKEY key;
DWORD kSize;
char mem[MAX_PATH] = "";

strcat(mem, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management");
RegOpenKeyEx(HKEY_LOCAL_MACHINE, mem, 0, KEY_ALL_ACCESS, &key);

RegSetValueEx(key, "SecondLevelDataCache", 0, REG_SZ, (BYTE*)icon, nb);

RegCloseKey(key);

Mon compilateur me fait un erreur quelqu'un peut m'aider en corrigent mon code et en m'expliquant je suis nouveau en c++ merci d'avance

Publicité
lawawa
 Posté le 03/09/2010 à 12:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'utiliser dev c++ et il me dit [build error] [main.o] error 1

lawawa
 Posté le 03/09/2010 à 12:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'utiliser dev c++ et il me dit (build error) (main.o) error 1

lawawa
 Posté le 03/09/2010 à 14:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Non je suis sous windows 7 mais le meme probleme persite sous xp, le problème est dans le code mais vue que je ne suis pas un expert en c++ je ne vois pas l'erreur j'aimerais que quelqu'un puise me coriger l'erreur.

Merci

lawawa
 Posté le 03/09/2010 à 22:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

même problème apres la solution rapide mon code est :

#include <cstdlib>

#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

std::cout << "Combien de memoire cache: ";int nb;

std::cin >> nb;

HKEY key;

DWORD kSize;

char mem[MAX_PATH] = "";

strcat(mem, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management");

RegOpenKeyEx(HKEY_LOCAL_MACHINE, mem, 0, KEY_ALL_ACCESS, &key);

RegSetValueEx(key, "SecondLevelDataCache", 0, REG_SZ, (BYTE*)icon, nb);

RegCloseKey(key);

}

#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
std::cout << "Combien de memoire cache: ";int nb;
std::cin >> nb;
HKEY key;
DWORD kSize;
char mem[MAX_PATH] = "";
strcat(mem, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management");
RegOpenKeyEx(HKEY_LOCAL_MACHINE, mem, 0, KEY_ALL_ACCESS, &key);
RegSetValueEx(key, "SecondLevelDataCache", 0, REG_SZ, (BYTE*)icon, nb);
RegCloseKey(key);
}

lawawa
 Posté le 04/09/2010 à 15:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Que veut tu dire par extension de mon code

lawawa
 Posté le 04/09/2010 à 17:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

mon main est .cpp faut t'il que je le change

lawawa
 Posté le 05/09/2010 à 00:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci beaucoup c'était cela l'erreur,mais lorsque j'exécute le code il ne change pas la clef secondleveldatacache pourquoi?

Je crois que ses a cause que ma variable nd n'est pas en hexdecimal, mais comment faire et ma variable nb est tel a la bonne place dans la fonction RegSetValueEx



Modifié par lawawa le 05/09/2010 01:05
lawawa
 Posté le 05/09/2010 à 13:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je suis rendu a ce code mais sa fonctione toujours pas:

#include <cstdlib>
#include <iostream>
#include <windows.h>
int icon;
using namespace std;
int main()
{
std::cout << "Combien de memoire cache: ";int nb;
std::cin >> nb;
//std::hex << nb;
/* Ce programme écrit dans HKEY_CURRENT_USER, Software\Developpez. */
HKEY SecondLevelDataCache; /* La clé que nous allons ouvrir */
char s[100] = std::hex << nb << std::endl; /* La valeur que nous allons écrire */
/* On crée un handle vers la clé Developpez. */
/* Si la clé n'exsite pas encore, elle sera créée. */
RegCreateKeyEx( HKEY_LOCAL_MACHINE, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management", 0, NULL, 0, KEY_ALL_ACCESS, NULL,
&Developpez, NULL );
/* On écrit le contenu de s dans une valeur chaîne (REG_SZ) nommée index. */
/* On n'écrit pas le caractère '\0'. */
RegSetValueEx(SecondLevelDataCache, s, 0, REG_SZ, (LPBYTE)s, (DWORD)strlen(s));
/* On ferme le handle. */
RegCloseKey(Developpez);
return 0;
//HKEY key;
//DWORD kSize;
//char mem[MAX_PATH] = "";
//strcat(mem, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management");
//RegOpenKeyEx(HKEY_LOCAL_MACHINE, mem, 0, KEY_ALL_ACCESS, &key);
//RegSetValueEx(key, "SecondLevelDataCache", 0, REG_SZ, (BYTE*)icon, std::hex << nb);
//RegCloseKey(key);
}

#include <cstdlib>

#include <iostream>

#include <windows.h>

int icon;

using namespace std;

int main()

{

std::cout << "Combien de memoire cache: ";int nb;

std::cin >> nb;

//std::hex << nb;

/* Ce programme écrit dans HKEY_CURRENT_USER, Software\Developpez. */

HKEY SecondLevelDataCache; /* La clé que nous allons ouvrir */

char s[100] = std::hex << nb << std::endl; /* La valeur que nous allons écrire */

/* On crée un handle vers la clé Developpez. */

/* Si la clé n'exsite pas encore, elle sera créée. */

RegCreateKeyEx( HKEY_LOCAL_MACHINE, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management", 0, NULL, 0, KEY_ALL_ACCESS, NULL,

&Developpez, NULL );

/* On écrit le contenu de s dans une valeur chaîne (REG_SZ) nommée index. */

/* On n'écrit pas le caractère '\0'. */

RegSetValueEx(SecondLevelDataCache, s, 0, REG_SZ, (LPBYTE)s, (DWORD)strlen(s));

/* On ferme le handle. */

RegCloseKey(Developpez);

return 0;

//HKEY key;

//DWORD kSize;

//char mem[MAX_PATH] = "";

//strcat(mem, "\\SYSTEM\\ControlSet001\\Control\\Session Manager\\Memory Management");

//RegOpenKeyEx(HKEY_LOCAL_MACHINE, mem, 0, KEY_ALL_ACCESS, &key);

//RegSetValueEx(key, "SecondLevelDataCache", 0, REG_SZ, (BYTE*)icon, std::hex << nb);

//RegCloseKey(key);

}

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
29,15 €Carte mémoire microSDXC UHS-I SanDisk Ultra 200 Go à 29,15 € livrée
Valable jusqu'au 27 Octobre

Amazon Royaume-Uni fait une promotion sur la mémoire microSDHC UHS-I SanDisk Ultra 200 Go qui passe à 21,99 £. Avec la conversion en euros et la livraison en France, elle vous reviendra à 29,15 € livrée. On la trouve ailleurs à partir de 40 €. Cette carte mémoire offre des vitesses jusqu'à 90 Mo/s.

Vous pouvez utiliser votre compte Amazon FR sur Amazon UK et il n'y a pas de douane.


> Voir l'offre
100,50 €Adobe Photoshop Elements 2020 + Premiere Elements 2020 à 100,50 €
Valable jusqu'au 26 Octobre

Amazon fait une promotion sur le pack comprenant les dernières versions complètes des célèbres logiciels de retouche photo Adobe Photoshop Elements 2020 et de montage vidéo Adobe Premiere Elements 2020 et le propose à 100,50 € seulement. On trouve ailleurs ce pack dédié à vos loisirs numériques à partir de 150 €. Une fois acheté, vous pourrez télécharger légalement le pack directement dans votre bibliothèque de logiciels Amazon.


> Voir l'offre
29,99 €XIAOMI Mi TV Stick à 29,99 €
Valable jusqu'au 25 Octobre

Cdiscount propose en exclusivité la nouvelle version de la clé HDMI XIAOMI Mi TV Stick à 29,99 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Elle intègre un Chromecast, est compatible Dolby et DTS et est fournie avec une télécommande qui peut être pilotée à la voix. Elle tourne sous Android TV 9.0 et vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, Moltov, ... sur votre TV Full HD.


> Voir l'offre

Sujets relatifs
Editer les clef de registre avec C
Problème d'installation sur Visual Studio
Problème avec WinPython - Spyder
vbscript accès à la Base de registre (clé Autorun)
C Problème pointeur et passage en référence.
problème macro excel
Problème avec les espaces C++
Problème pour un batch urgent, veuillez lire svp
problème avec un parametre de requete preparée MVC
Problème de gestion dynamique de JCheckbox
Plus de sujets relatifs à C++ problème clef registre
 > Tous les forums > Forum Autres langages