Accueil > Forum > > > > Base de registre avec utilisateur non-administrateur
Base de registre avec utilisateur non-administrateur
vendredi 22 septembre 2006 à 09:46:06 |
Base de registre avec utilisateur non-administrateur

Leonel67
|
Bonjour à tous Voilà j'ai un problème d'accès à la base registre avec les systèmes multi-utilisateur, genre WIN2000 ou WIN XP pro. Voici le code que j'utilise //************************** #define Clef_Local "Software\\NOM\\Capture" //**************************
HKEY hkey; DWORD Type=REG_DWORD, D=4; DWORD Valeur=0; char Port[10]; if (!RegCreateKeyEx(HKEY_CURRENT_USER, Clef_Local, 0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &D)) { D=10; if (RegQueryValueEx(hkey,"Port",0,&Type,(unsigned char*)Port,&D)) { strcpy (Port,""); RegSetValueEx(hkey,"Port",0,REG_SZ,(unsigned char*)Port,10); } ... } //************************** Ce morceau de code me permet de sauvegarder des paramètres de mon application dans la base de registre. Ce code fonctionne très bien lorsque je suis administrateur, mais lorsque je suis utilisateur l'accès aux clefs est refusé, du moins impossible de les modifier. Que j'utilise HKEY_CURRENT_USER ou HKEY_LOCAL_MACHINE c'est pareil. Comment puis-je créer ou modifier une clef quelque soit l'utilisateur? Je veux bien que le programme créé une nouvelle clef pour chaque utilisateur. Mais je veux surtout que mon programme puisse modifié (voir créer) les clefs. Merci pour vos réponses. Leonel
|
|
vendredi 22 septembre 2006 à 16:17:37 |
Re : Base de registre avec utilisateur non-administrateur

racpp
|
Salut,
Normalement, une application lancée en mode utilisateur a tous les droits sur la clé HKEY_CURRENT_USER. Elle peut donc ajouter ou supprimer des sous-clés, lire ou changer des valeurs etc.
Dans ton code je vois une petite erreur qui empêche la modification de la valeur. En cas de succès, RegQueryValueEx() retourne 0. Il faudra donc faire: if (!RegQueryValueEx(hkey,"Port",0,&Type,(unsigned char*)Port,&D))
{
strcpy (Port,"");
RegSetValueEx(hkey,"Port",0,REG_SZ,(unsigned char*)Port,10);
}
|
|
samedi 23 septembre 2006 à 14:57:50 |
Re : Base de registre avec utilisateur non-administrateur

Leonel67
|
Réponse acceptée !
Salut La variable Port est initialisée avant l'exécution de mes quelques lignes. En cherchant dans les archives des codes j'ai trouvé ce qui me manquait. Il faut rajouter une variable de sécurité à l'instruction RegCreateKeyEx:
//************************** HKEY hkey; DWORD Type=REG_DWORD, D=4; DWORD Valeur=0; char Port[10]; SECURITY_ATTRIBUTES SecAtt;
SecAtt.nLength = sizeof (SECURITY_ATTRIBUTES); SecAtt.lpSecurityDescriptor = NULL; SecAtt.bInheritHandle = TRUE;
if (!RegCreateKeyEx(HKEY_CURRENT_USERLeo0512, Clef_Local, 0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, &SecAtt, &hkey, &D)) { D=10; if (RegQueryValueEx(hkey,"Port",0,&Type,(unsigned char*)Port,&D)) { strcpy (Port,""); RegSetValueEx(hkey,"Port",0,REG_SZ,(unsigned char*)Port,10); } ...
Avec cette modification l'utilisation de la base de registre se fait correctement. Mon problème de droit d'accès est corrigé... Le code fonctionne sous Win 98, Win2000 et WinXP en mono et multi-utilisateur. Merci
|
|
samedi 23 septembre 2006 à 15:29:14 |
Re : Base de registre avec utilisateur non-administrateur

racpp
|
Tu viens simplement d'ajouter une nouvelle clé dans la base de registre et essayé de la partager pour tous les utilisateurs. HKEY_CURRENT_USER est faite pour cela car cette clé existe pour chaque compte utilisateur. Elle contient les sous-clés qui correspondent à l'utilisateur courant. On a donc autant de HKEY_CURRENT_USER qu'il y'a d'utilisateurs mais chacun ne voit que la sienne. C'est la solution la plus propre. Ton code ne fonctionnera pas car tu n'as pas encore corrigé l'erreur. Tu as oublié le ! devant RegQueryValueEx(): if ( !RegQueryValueEx(.....
|
|
samedi 23 septembre 2006 à 15:44:57 |
Re : Base de registre avec utilisateur non-administrateur

Leonel67
|
Si, ça fonctionne comme je veux: if ( RegQueryValueEx(hkey,"Port",0,&Type,(unsigned char*)Port,&D)) { // (1) strcpy (Port,""); RegSetValueEx(hkey,"Port",0,REG_SZ,(unsigned char*)Port,10); // (2)} En (1) je veux lire la valeur de la clé. Si elle n'existe pas alors je créé la clé en (2) avec une valeur par défaut. J'enregistre mes clés dans HKEY_CURRENT_USER, ainsi chaque utilisateur pourra faire le réglage qui lui convient.   
|
|
Cette discussion est classée dans : base, port, utilisateur, registre, hkey
Répondre à ce message
Sujets en rapport avec ce message
ecrire une valeur dans la base de registre [ par yerosnimus ]
bonjour,en dépit de toute la littérature trouvée sur ce site concernant l'écriture de clé dans la base de registre windows, je n'y arrive pas ou pas t
Port COM [ par julienbj ]
Je cherche à récupérer la liste des ports COM existant sur un ordinateur équipé d'un windows. Auriez-vous une idée de la façon dont je pourrais procéd
Modification des droits utilisateur dans la base de registre [ par gg681 ]
Bonjour, Est-ce que quelqu'un saurait comment faire pour modifier les droits attribuer sur une clé de la base de registre par script <img alt="" src="
Besoin d'aide [ par mayapour ]
Bonjour,Novice en C sous Linux, j'ai besoin de conseil, bout de codes ou tout suggestions.Description: Pseudo remplassant de passwd utilisant un fichi
base de registre [ par rdtt ]
bonjour,voilà, j'aimerai savoir comment faire pour entrer une valeur dans la base de registre avec un programme pour faire un code de série où une lim
vérifications dans une base de donnée [ par kj_83 ]
Bonjour je réalise actuellement un programme de gestion de stock .Dans une des parties du programme l'utilisateur peut entrer de nouveaux produit au t
exporeter la base de registre et la lire [ par sebastienmz ]
alors voila je doit exporte une partie de la base de regsitre puis la lire mais si vous avez remarquer entre chaque lettre il y a un NULL qui donne la
registre windows - lecture d'une valeur [ par shadow1779 ]
bonjour, voila je veux lire dans la valeur InstallPath de ma clé, j'voudrai en fait faire un: char path[150]; et enregistrer ce que retournera RegQuer
Exporter une clé de registre [ par fannylapo ]
Bonjour,J'ai un problème et j'aurais besoin d'être rapidement.Je désire exporter une clé de registre vers un .reg dans un dossier. Je code en MFC en u
Manipulation base de registre [ par tastira ]
Bonsoir a tous.Dans le cadre d'un mini projet pour le developpement d'un agent SNMP en c++ j ai eu besoin a utilisé les clé de base de registre pour l
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|