[VB.NET] Elever les privilèges

Fermé
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 - 7 juil. 2012 à 16:01
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 - 21 sept. 2012 à 21:37
Bonjour,

Je développe un petit programme, et je voulais faire en sorte qu'il se lance ou non au démarrage du PC, selon que l'utilisateur ait coché ou non une CheckBox dans un formulaire nommé "Paramètres". Si la case est coché, je crée une valeur dans la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, qui lancera mon appli au démarrage.

Lorsque je lance le débogage, je rencontre une erreur au moment de créer la valeur, m'indiquant que l'accès au registre n'est pas autorisé, bien que je sois administrateur. Après quelques recherches, je lis qu'il faut modifier une ligne du fichier app.manifest pour exécuter le logiciel en tant qu'administrateur automatiquement. Après cette modification, ça marche, mais mon problème est que je voudrais que tous les utilisateurs (standard et administrateurs) puisse lancer mon application. Je voudrais donc pouvoir afficher la fenêtre contrôle de compte utilisateur uniquement lorsqu'on appuie sur le bouton "paramètres" et non au lancement.

Je n'ai aucune idée de la manière dont il faut procéder, j'utilise Visual Basic 2010 express.

Je compte sur votre aide ;o) .

9 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 juil. 2012 à 00:56
Bonjour,
Pour que ça fonctionne en Runtime tu dois ouvrir VB en tant qu'administrateur.
Clic droit sur l'icône de VB -> sélectionner ouvrir en tant qu'administrateur.
Ensuite tu ouvre ton projet.
Ca fonctionnera pour ta mise au point.
Ensuite tu dois "publier" ton projet (toujours avec VB en mode administrateur).
Si tu installe ton projet sur un autre PC il fonctionnera normalement sans devoir toucher au jeton de l'utilisateur.
A+
1
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 714
8 juil. 2012 à 10:58
Bonjour lermite222,

j'ai fait ce que tu m'as dit, j'ai donc lancé VB en tant qu'administrateur, j'ai lancé le débogage et en effet, je n'ai eu aucun problème lors de la création de la clé.

J'ai donc publié mon projet, mais lorsque je lance l'exécutable, j'ai une erreur "accès au registre non autorisée". Pour que cela marche, il faut que je lance mon appli en tant qu'administrateur, et moi, je voudrais que seul l'accès aux paramètres soit réservé aux administrateurs.

J'ai peut-être loupé une étape dans ce que vous m'avez dit...

Connaissez vous une autre solution ?
1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 juil. 2012 à 17:16
Re,
Je n'ai pas dis de "lancer l'exécutable" mais de "Publier le projet" seule condition pour que ça fonctionne.
Quand à détecter si c'est un admin qui ouvre ton appli c'est plus dans le début de l'appli que tu dois tester cela.
Et autre remarque, même un administrateur qui se log sur le PC est en mode Utilisateur et pas Admin, pour cela il doit faire une démarche ou ouvrir un compte Administrateur privilégier à proscrire s'il a un accès internet ouvert.
Tout ça doit être traiter dans le Main de ton appli, mais comme je ne sais pas ce que tu fais et encore moins ce que tu veux faire...
A+
1
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 714
8 juil. 2012 à 18:29
Bon, je vais essayer de me réexpliquer.

Dans mon projet, il y a deux formulaires :

- Un formulaire principal qui s'ouvre au démarrage. Il faut que n'importe quel utilisateur puisse y accéder, donc pas de demande de mot de passe administrateur.

- Un second formulaire, appelé "Paramètres", accessible par un bouton. Je voudrais que seuls les administrateurs du PC puissent y accéder, donc afficher le contrôle de compte utilisateur (quand le bureau s'estompe et une fenêtre apparaît en disant "Voulez-vous autoriser ce programme à apporter des modifications à votre ordinateur ?"). Généralement, dans une application, il y a un petit bouclier d'affiché sur le bouton si celui ci lance le contrôle de compte utilisateur.
1

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

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 juil. 2012 à 20:43
Re,
Je pense que j'ai compris ton approche qui me semble un peu... border-line...
Abandon du suivi.
Cdlt.
A+
1
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 714
8 juil. 2012 à 23:07
Pourtant, il y a des applications où un contrôle de compte utilisateur s'affiche lorsqu'une action nécessite des privilèges plus élevés... C'est très fréquent.

Personne n'a une autre idée ?

Pour l'instant, j'ai réussi à faire en sorte que lorsque j'appuie sur mon bouton, l'application soit redémarrée en tant qu'administrateur, mais j'aimerai ne pas avoir à redémarrer...
1
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 714
21 sept. 2012 à 21:37
UP !

Je viens de retomber sur ce post par hasard...
1
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
8 juil. 2012 à 11:05
Il faut savoir par ailleurs que si une application non lancée en admin va accéder à un registre virtualisé (sur Vista ou 7), donc ça ne fonctionnera pas, ou avoir une erreur. Quand il faut les droits d'admin, il faut les droits d'admin. Point.
0
nathan 60 Messages postés 1811 Date d'inscription mercredi 29 décembre 2010 Statut Contributeur Dernière intervention 9 février 2014 714
8 juil. 2012 à 11:42
Je suis d'accord avec vous, mais je crois que vous n'avez pas bien compris mon problème : je n'ai pas dit que je voulais accéder au registre sans droits d'administrateur. Ce que je voudrais, c'est que le formulaire principal de mon application soit accessible à tous les utilisateurs (il n'utilise pas le registre), par contre, je voudrais que le formulaire "paramètres" soit réservé aux administrateurs, car il modifie le registre. Pour cela, j'aimerai que quand je clique sur le bouton "paramètres", le contrôle de compte utilisateur s'affiche pour demander l'autorisation.
0