rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[C]Ecrire dans la base de registre ?

Reaper, le vendredi 25 juin 2004 à 17:20:27
Voila, suite a un gros pb dans ma BD qui m'empeche de demarrer mon XP
(cf: http://www.commentcamarche.net/forum/affich-833315-Pb-de-Bas­e-de-registre )
je voulais savoir si qq un savait si il etait possible modifer la Base de registre avec un petit programme C et si oui comment ?
(langage C ou autre, mais je connait surttout C/C++)
Merci d'avance.

Reaper
Répondre à Reaper  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Canard007, le vendredi 25 juin 2004 à 17:44:40
salut,
Avec L'api win3é tu peux acceder à la base de registre en utilisant la bibliotheque windows.h...
voici un bour de code (que tu drvra legerement modifier car il etait destiné à autre chose) dans lequel il y a le moyen d'ecrire dans une base de registre:

#include <jni.h> 
#include <windows.h>
#include <stdio.h>
#include "JniWin32.h"
#include <tlhelp32.h>
#include <string.h>


#include <commctrl.h>
#pragma comment(lib,"comctl32.lib")


JNIEXPORT jint JNICALL 
Java_FoncWin32_SetRegValueText(JNIEnv *env, jobject obj, jstring chemin, jstring nom, jstring value) 
{ 
	//declaration des variables
	int returnValue = 0;
	HKEY hk;
	
	
	//recuperation des arguments
	const char *szKEY = (*env)->GetStringUTFChars(env, chemin, 0);
	const char *szTXT = (*env)->GetStringUTFChars(env, nom, 0);
	const char *valeur = (*env)->GetStringUTFChars(env, value, 0);
	//preparation
	RegCreateKeyEx(HKEY_LOCAL_MACHINE, szKEY, 0, 0, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, 0, &hk, 0);
	
	//on recupere la taille de la clé
	returnValue=RegSetValueEx(hk, szTXT, 0, REG_SZ, (BYTE*)valeur, strlen(valeur));
	
	//fermeture
	RegCloseKey(hk);
	
	return returnValue;

	
}


Bon la ca permet d ecrire une valeur de type chaine de caractere dans le registre defini par le chemin d'accé de la clé dans la chaine szKEY faut lui passer la valeur et le nom szTXT

voila le meme pour un int
JNIEXPORT jint JNICALL 
Java_FoncWin32_SetRegValueInt(JNIEnv *env, jobject obj, jstring chemin, jstring nom, jint valeur) 
{ 
	//declaration des variables
	int returnValue = 0;
	HKEY hk;
	
	
	//recuperation des arguments
	const char *szKEY = (*env)->GetStringUTFChars(env, chemin, 0);
	const char *szINT = (*env)->GetStringUTFChars(env, nom, 0);
	
	RegCreateKeyEx(HKEY_LOCAL_MACHINE, szKEY, 0, 0, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, 0, &hk, 0);
	//on recupere la taille de la clé
	returnValue = RegSetValueEx(hk, szINT, 0, REG_DWORD, (BYTE*)&valeur, 4);
	RegCloseKey(hk);
	if(returnValue!=ERROR_SUCCESS) return 1234567;
	return returnValue;

	
}


et voila pour un double
JNIEXPORT jint JNICALL 
Java_FoncWin32_SetRegValueDouble(JNIEnv *env, jobject obj, jstring chemin, jstring nom, jdouble valeur) 
{ 
	//declaration des variables
	int returnValue = 0;
	HKEY hk;
	
	
	//recuperation des arguments
	const char *szKEY = (*env)->GetStringUTFChars(env, chemin, 0);
	const char *szDBL = (*env)->GetStringUTFChars(env, nom, 0);
	
	//preparation
	RegCreateKeyEx(HKEY_LOCAL_MACHINE, szKEY, 0, 0, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, 0, &hk, 0);
	
	//on recupere la taille de la clé
	returnValue=RegSetValueEx(hk, szDBL, 0, REG_BINARY, (BYTE*)&valeur, 8);
	
	//fermeture
	RegCloseKey(hk);
	
	return returnValue;

	
}



t'inquiete pas des : JNIEXPORT jint JNICALL et des jint ou j string en parametre c etait pour faire une interface jni avec le java..
tu reprend le code dans les fonction et tu le replace dans une fonction c normal..ca devrai marcher...
Répondre à Canard007

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Reaper, le vendredi 25 juin 2004 à 20:54:48
Le probleme est que je n'ai acces qu'au DOS (et encore) et a ma LINUX, ca marchera pas sous linux si ?
Et sous DOS ?
Sinon, merci pour ton aide
Répondre à Reaper

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Canard007, le samedi 26 juin 2004 à 11:51:55
Comment ca tu n'a accé qu au dos??? si tu peux faire du dev en c/c++ sous windows ca ca marche sans probleme...
Par contre il est klr que ceci ne marche pas sous linux puisque la on s appuie sur la bibliotheque system de windows (windows.h) pour linux il fut s appuyer sur la bibliotheque systeme de linux et regarder quelle est la fonction equivalente à RegCreateKeyEx...stoo
Répondre à Canard007

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Reaper, le dimanche 27 juin 2004 à 12:03:05
Bon, en gros mon pb c'est que suite a une modif de ma base de registre j'ai le pb suivant (cf lien au debut de la discussion): je ne peux plus acceder a mon XP ("il me met un ecran de login que j'ai pas d'habitude et ensuite il bloque qd je clique sur OK).
Dc il me reste le DOS (et encore, mme avec un disquette boot je peux acceder a mon lecteur C mais pas lire/ ecrire dessus ...
Par contre qd je vais sous linux qui est sur un disque separé, je peux acceder a mon C et lire/ecrire.
Dc je veux modifier ma base de registre de mon XP sans etre sous win et meme si possible en etant sous linux (mais la j'y crois pas trop :))
Pas mal comme prob hein :)
Répondre à Reaper

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Canard007, le lundi 28 juin 2004 à 09:33:57
Acceder à la base de registre d'un windows pas chargé sous linux!!!!
ba moi je te souhaite beaucoup de courage ....la j en ai strictement aucune idée....
Répondre à Canard007
Créer une base de données sous IngresPour créer une base de donées Ingres , il faut utiliser la commande createdb La syntaxe la plus simple est : createdb mabase Dans ce cas, la base utilisera les locations par défaut (II_DATABASE, II_WORK, II_CHECKPOINT, II_DUMP et... www.commentcamarche.net/faq/sujet-5417-creer-une-base-de-donnees-sous-ingres
Comment ecrit on pi=3,1415 au clavier (Résolu)Bonjour,Comment ecrit on pi =3,1415 au clavier,le symbole pour éviter d'écrire 3,14 et pour avoir plus de précision dans exce ou dans regressi. merci www.commentcamarche.net/forum/affich-6737893-comment-ecrit-on-pi-3-1415-au-clavier
[MS-Dos] Commandes DOS de baseCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de /?... www.commentcamarche.net/faq/sujet-2187-ms-dos-commandes-dos-de-base
[Windows 2000/XP] Update sans s'enregistrerPour ne pas transmettre d'informations personnelles lors d'une mise à jour de Windows en utilisant Windows Update, il faut rajouter un clef dans le registre. Ouvrez la base de registre : Démarrer > Exécuter et tapez regedit Ouvrez la clef... www.commentcamarche.net/faq/sujet-2169-windows-2000-xp-update-sans-s-enregistrer
Mon caisson de basse fait un bruit bizzare (Résolu)bonjours, voila mon probleme j'ai un kit enciente 5.1 logitec et lorsque je l allume le caisson de basse fait un drole de bruit et sa encor plus fort quand je lance une aplication ou que je deplace la souris. je pense que cela vient des parasite.... www.commentcamarche.net/forum/affich-3330514-mon-caisson-de-basse-fait-un-bruit-bizzare
Pb Vista caisson de basses (Résolu)Bonjour, Depuis hier, le caisson de basse de mon home cinema 5.1 ne marche plus sur vista . Toutes les autres enceintes fonctionnent bien. De plus quand je configure mes hauts parleurs, vista test tout mes hauts parleur et le son sort de toute les... www.commentcamarche.net/forum/affich-8146168-pb-vista-caisson-de-basses
Télécharger Deskroller Screensaver Les écrans de veille pullulent sur le web et toutes sortes que vous pouvez télécharger gratuitement. Généralement c'est basé sur des défilements d'images ou des animations de personnages ou figurines. En quelques mots, les écrans de veilles sortent... www.commentcamarche.net/telecharger/telecharger-34056042-deskroller-screensaver
Télécharger Maxima Maxima est un logiciel de calcul écrit en LISP et basé sur le code Macsyma. Maxima est donc est logiciel de calcul formel, libre et gratuit. Il propose quelques capacités graphiques. Les performances de Maxima sont très rapprochées des autres... www.commentcamarche.net/telecharger/telecharger-34055548-maxima
BEST SERVICE Chris Hein BassBEST SERVICE Chris Hein Bass,,BEST SERVICE Chris Hein Bass, Sample Library with six exceptional noble bass instruments, sampled with all imaginable details that answer anyone’s wishes, 12.7 GB of fantastic, natural bass sounds, up to 4.089 samples per sou www.commentcamarche.net/guide-achat/best-service-chris-hein-bass-386623267-fiche-technique
COFFRET ECRANS DE VEILLE 4 SAICOFFRET ECRANS DE VEILLE 4 SAI,,COFFRET ECRANS DE VEILLE 4 SAISONS / LOGICIEL PC CD-ROM - Un coffret original pour animer votre PC toute l'année au rythme des saisons ! www.commentcamarche.net/guide-achat/coffret-ecrans-de-veille-4-sai-516136683-fiche-technique
Toutes les réponses pour « [C]Ecrire dans la base de registre ? »