Bonjour,
je souhaiterai pouvoir inscrire une clé de registre dans un compte Standard Vista.
Pourriez-vous m'indiquer le code svp.
J'ai recherché sur internet, je n'ai pas trouvé de code fonctionnant.
Merci
Bonjour,
je souhaiterai pouvoir inscrire une clé de registre dans un compte Standard Vista.
Pourriez-vous m'indiquer le code svp.
J'ai recherché sur internet, je n'ai pas trouvé de code fonctionnant.
Merci
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
je suis plutôt novice en la matière, mais je cherche beaucoup, la recherche étant la voie de la sagesse probablement
je mets ci-dessous, le code que j'utilise pour écrire les clés de registre qui m'intéressent. Ce code fonctionne bien dans un compte admnistrateur, mais pas avec des droits restreints.
j'ai bien trouvé du code mais trop complexe pour moi.
Je ne vois pas dans le tuto, que je consulte comme tout le monde, la notion d'élévation des privilèges ?
Alors je me tourne vers vous, les sages du vb.net.
Merci pour votre réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Try '====================================================================================================== 'Vérification si les clés .zod et zod_auto_file existent '====================================================================================================== Dim RegExtension As RegistryKey Dim RegAssocFichier As RegistryKey RegExtension = Registry.ClassesRoot.OpenSubKey(".zod", True) RegAssocFichier = Registry.ClassesRoot.OpenSubKey("zod_auto_file", False) Dim CheminIcone = My.Application.Info().DirectoryPath() CheminIcone = CheminIcone & "\Resources\WinZod.ico" Dim CléShell As String = Chr(34) & CheminApplication & Chr(34) & " " & Chr(34) & "%1" & Chr(34) Dim CléDefaultIcon As String = Chr(34) & CheminIcone & Chr(34) '& " " & Chr(34) & "%1" & Chr(34) If RegExtension Is Nothing Or RegAssocFichier Is Nothing Then If RegExtension Is Nothing Then RegExtension = Registry.ClassesRoot.CreateSubKey(".zod", RegistryKeyPermissionCheck.ReadWriteSubTree) RegExtension.SetValue("", "zod_auto_file") End If If RegAssocFichier Is Nothing Then RegAssocFichier = Registry.ClassesRoot.CreateSubKey("zod_auto_file\\shell\\open\\command\", RegistryKeyPermissionCheck.ReadWriteSubTree) RegAssocFichier.SetValue("", CléShell) RegAssocFichier = Registry.ClassesRoot.CreateSubKey("zod_auto_file\\DefaultIcon\", RegistryKeyPermissionCheck.ReadWriteSubTree) RegAssocFichier.SetValue("", CléDefaultIcon) End If End If Catch ex As Exception MessageBox.Show(ex.Message) Me.Dispose() End Try
Une petite recherche sur le forum sur le fichier app.manifest repondra a ta question
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
Bonsoir,
j'ai beau chercher, mais je ne vois pas le solution.
lorsque je change le manifest dans propriété du projet, afficher les paramètres de l'UAC, je mets :
mais j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
alors j'ai dans l'onglet sécurité j'ai décoché :Erreur 1 MSB3190 : ClickOnce ne prend pas en charge le niveau d'exécution de la demande 'requireAdministrator'. WinZod
Activer les paramètres de sécurité clickonce
mais l'executable n'écrit toujours pas la clé de registre que je veux dans le compte standard.
j'ai lu le tuto : Développer des applications sous Windows Vista - partie 1
la partie sur le manifest,
je ne trouve pas l'outil MT.exe pour voir dans l'exe si manifest.
Pouvez-vous me renseigner ?
cdlt
La ligne requireAdministrator du manifest doit, sur les machines n'ayant pas les droits admin, d'afficher la fenetre UAC et de demander confirmation ? l'as tu cette demande ?
Par contre, je ne connais pas clickonce ... desole
Mais je pense que cela doit etre une fonction limitee de la version d'essai ..
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
bonjour Danyel,
non UAC n'affiche pas la demande de confirmation.
j'ai juste un message : l'accès à la clé de registre 'HKEY_CLASSES_ROOT\.zod' n'est pas autorisé (même en ouvrant le programme en tant qu'administrateur).
ma version de VB.NET et 2008 en version pro (valide et officielle), et clickonce doit permettre de créer le Setup.
j'ai le sentiment que le manifest ne s'intègre pas au fichier exe. Peut-être que je ne sais pas lier le fichier manifest au fichier exe ?
Merci de ta réponse.
cdlt
Ah, si l'acces à la bdr n'est pas autorise meme avec les droits d'admin, c'est que le probleme est autre ...
Il n'y a aucune restriction à l'acces bdr avec les droits d'admin et l'UAC (que je sache)
La majorite des outils externes à vs sont tous limites ou en version light (je crois que c'est le cas de clickonce)
Comme precedemment, je pense que le probleme vient d'ailleurs.
Donne moi exactement la ligne de code qui pose probleme.
Ca ne fonctionne pas aussi en debug et/ou en release (sans clickone ?)
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
ligne :
j'ai essayé l'exe trouvé dans bin\debug et bin\release
Code : Sélectionner tout - Visualiser dans une fenêtre à part RegExtension = Registry.ClassesRoot.CreateSubKey(".zod", RegistryKeyPermissionCheck.ReadWriteSubTree)
rien qui fonctionne ?
cdlt
Ce que je ne comprends pas, c'est exactement ce que tu veux faire ?
Tu veux juste creer dans la bdr ou donner des droits ?
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
Je lors du premier lancement de mon application qu'une clé de registre soit inscrite dans la base de registre.
La clé s'inscrit bien lorsque je suis en administrateur mais pas lorsque je suis en mode standard. hors je voudrai inscrire cette clé également lorsque le compte utilisateur est en mode standart.
Ok, donc si c'est juste pour inscrire dans la bdr, utilise plutot registry.setvalue et .getvalue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 ' The name of the key must include a valid root. Const userRoot As String = "HKEY_CURRENT_USER" Const subkey As String = "RegistrySetValueExample" Const keyName As String = userRoot & "\" & subkey ' Integer values can be stored without specifying the ' registry data type, but Long values will be stored ' as strings unless you specify the type. Note that ' the integer is stored in the default name/value ' pair. Registry.SetValue(keyName, "", 5280) Registry.SetValue(keyName, "TestLong", 12345678901234, _ RegistryValueKind.QWord) ' Strings with expandable environment variables are ' stored as ordinary strings unless you specify the ' data type. Registry.SetValue(keyName, "TestExpand", "My path: %path%") Registry.SetValue(keyName, "TestExpand2", "My path: %path%", _ RegistryValueKind.ExpandString) ' Arrays of strings are stored automatically as ' MultiString. Similarly, arrays of Byte are stored ' automatically as Binary. Dim strings() As String = {"One", "Two", "Three"} Registry.SetValue(keyName, "TestArray", strings)
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
Pour écrire dans HKCR tu aura besoin des droits d'admin. Et si ce n'est qu'au premier lancement de l'appli tu pourrai faire un exe principal en asInvoker et un second exe en requireAdministrator, lancé au premier lancement, et qui ferai cette tâche.
Ceci dit ce serai plus gracieux d'effectuer cette opération pendant l'installation de l'application, pas au premier lancement (surtout si c'est pour une association de fichier, comme ça a l'air d'être ...).
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Bonsoir,
le code fonctionne bien avec une clé : HKEY_CURRENT_USER mais pas avec une clé : HKEY_CLASSES_ROOT
message erreur :Il me faut bien les droits administrateurs, mais mon code ne fait pas d'élévation de privilège ?accès à la clé de registre KHEY_CLASSES_ROOT\.zod refusé
comment puis-je savoir s'il y a bien un manifest dans l'exe que je génére ?
Cdlt
Ouvre ton exe avec notepad (retour automatique à la ligne activé) et regarde si à la fin de ton exe tu vois ton manifest.
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Re
en fait, en publiant l'application avec clickOnce, il n'est pas possible de générer un manifest avec élévation des privilège (ma conclusion).
en prenant directement l'exe dans debug, la publication doit se fait par "asinvoker"
En recherchant j'ai vu que l'on pouvait faire un déployement : "Windows Installer" qui permet de faire des déployement avec une confiance totale.
Connaissez vous un logiciel pour créer ce genre de déployement ? un freeware me plairait.
cdlt
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Bon, je viens de faire une tonne d'essai dont voici les resultats.
Le programme que j'ai fait ne fais que creer dans la bdr comme ton code et avec les droits admin dans le manifest.
- Avec compte utilisateur vierge (fraichement crée) et UAC active
Au lancement de l'application, la fenetre UAC s'ouvre bien et demande le mot de passe administrateur pour executer le programme.
Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.
- Avec compte utilisateur vierge (fraichement crée) et UAC desactive
Lancement impossible de l'application.
- Avec compte administrateur et UAC active
Au lancement, la fenetre UAC s'ouvre aussi mais ne demande pas le mot de passe, juste un avertissement quoi.
Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.
- Avec compte administrateur et UAC desactive
Le lancement du programme se fait sans aucune demande.
Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.
Donc si tu ne peux pas ecrire dans la bdr et le HKCR, c'est qu'il y a un autre probleme ...
Que les neurones soient avec toi, jeune padawan.
Ne pas oublier, qu'un métier, développer être.
Effectuer des recherches et lire les tutos, avant de poster, tu dois.
Aucune question technique, faites par MP, tu ne dois.
Bonsoir,
en ouvrant l'exe je ne vois pas de balises xml. Il semble donc qu'il y ait pas de manifest.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager