Executer un fichier .reg

chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009 - 11 juil. 2008 à 09:13
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 11 juil. 2008 à 14:11
  Bonjour,
Je galere depuis quelques jours pour écrire une valeur binaire dans une clé de registre. Et je n'y arrive toujours pas ! Car je ne comprends pas comment sont affichés les valeurs binaire.
En gros Je veux arriver à cette valeur ( avec des "..." je ne sais pas a quoi cela corresponds...)

0000      00 00 03 00 05 00 02 00       .....
0008      00 00 00 00 00 00 00 00      .....
0010      

et j'arrive à cette valeur, les données ne sont pas assignées au bon endroit ou mal traduite...

0000      30 30 30 30 30 33 30 30   00000300
0008      30 35 30 30 30 32 30 30   05000200
0010

Donc derniere solution pour moi, c'est de créer un fichier de base de registre et de le lançer en c++ !!!
Mais je souhaite lancer le fichier reg sans confirmation ou autres, que ce soit transparant aux users...
Merci d'avance car j'en ai marre de travailler sur ce projet je veux passer à autre chose la !!!

7 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 juil. 2008 à 09:42
Salut,
Pour commencer ce n'est pas du binaire, mais simplement la valeur hexa de chacun des caractères.
Sinon plutôt que t'énerver sur ton problème pourquoi ne poste tu pas le bout de code en question afin que l'on t'aide ?

Si tu te défiles à chaque problème rencontrés tu n'es pas rendu!

Shell
0
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
11 juil. 2008 à 10:32
Lol, alors voila mon code :

char DaylightStartKeyValue[]="00000300050002000000000000000000";

                       RegCreateKeyEx(
             HKEY_LOCAL_MACHINE,     // handle to an open key
             "System\\CurrentControlSet\\Control\\TimeZoneInformation",    // address of subkey name
             0,     // reserved
             NULL,  // address of class string
             REG_OPTION_NON_VOLATILE,// special options flag
             KEY_ALL_ACCESS,     // desired security access
             NULL,              // address of key security structure
             &DaylightStartKey,            // address of buffer for opened handle
             NULL);  // address of disposition value buffer
                      
           RegSetValueEx(DaylightStartKey, "DaylightStart" ,0,REG_BINARY,(LPBYTE) DaylightStartKeyValue,16);   
Mais après coup je me rends compte que faire plutot un fichier de registre et de l'executer en c++ sans message de confirmation pour l'utilisateur serait plus utile...
Pouvez vous m'orienter pour coder cela ? avec mon executable en  c++ et le fichier de registre dans le meme repertoire.
Merci d'avance je dois rendre ce projet pour 12h30 !!!
je suis dans le caca !
0
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
11 juil. 2008 à 11:26
UP !!!
Personne ne sait comment executer en c++ un fichier .reg ??
Merci
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 juil. 2008 à 11:56
Bon ben si finalement tu préfères passer par un fichier utilises l'une des deux commandes suivantes :
- ShellExecute(..)
- system(...)

La ligne de commande à passer est  "regedit /S C:\toto.reg"
Le /S c'est pour indiquer que tu est en "Silent Mode".

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
11 juil. 2008 à 12:15
Sinon comme dit dans un post précédent remplace
char DaylightStartKeyValue[]="00000300050002000000000000000000";
par
char DaylightStartKeyValue[]="\x0\x0\x3\x0\x5\x0\x2\x0\x0\x0\x0\x0\x0\x0\x0\x0";
ou bien
char DaylightStartKeyValue[16]={0,0,3,0,5,0,2,0,0,0,0,0,0,0,0,0};
0
chinois0013 Messages postés 33 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 2 juin 2009
11 juil. 2008 à 13:55
MERCIIII Juju 12 trop fort (je m'appelle julien moi aussi c'est pour ca !)
Bon super char DaylightStartKeyValue[]="\x0\x0\x3\x0\x5\x0\x2\x0\x0\x0\x0\x0\x0\x0\x0\x0";
ca fonctionne nickel !!
Mais je veux bien comprendre comment cela fonctionne.
\x pourquoi il faut rentrer ces caractères dans le tableau de caractère.
En tout cas merci beaucoup !!
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 juil. 2008 à 14:11
\x veut tout simplement dire que le caractère qui suit est en hexadécimal.

Shell
0
Rejoignez-nous