j'ai trouvé un ptit code de 3 ligne qui a l'air beaucoup mieux et simpleMaintenant ton code pour ajouter un menu contextuel est très lourd, il y a plus simple mais c'est ton choix...

je le test pour autrre log

j'ai trouvé un ptit code de 3 ligne qui a l'air beaucoup mieux et simpleMaintenant ton code pour ajouter un menu contextuel est très lourd, il y a plus simple mais c'est ton choix...
3 lignes (lool) impossible il en faut beaucoup plus, agrémenté d'une gestion d'exception je t'en propose une dizaine pour créer le menu et environ 5 pour le supprimer.Nash a écrit :j'ai trouvé un ptit code de 3 ligne qui a l'air beaucoup mieux et simpleMaintenant ton code pour ajouter un menu contextuel est très lourd, il y a plus simple mais c'est ton choix...
je le test pour autrre log
apres encore une ligne pour "bas , haut , milieu"nom = Me.Label1.Text
Key = My.Computer.Registry.ClassesRoot.CreateSubKey("DesktopBackground\shell\" & nom & "\command\")
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\DesktopBackground\shell\" & nom & "\command\", "", Me.TextBox1.Text)
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\DesktopBackground\shell\" & nom & "\\", "icon", Me.TextBox1.Text)
Nash a écrit :re
sans l'execption si la clé existe : sur clique bouton apres avoir choisi exe par openfiledialog qui a mis le chemin dans textbox1 et le nom dans label1:
apres encore une ligne pour "bas , haut , milieu"nom = Me.Label1.Text
Key = My.Computer.Registry.ClassesRoot.CreateSubKey("DesktopBackground\shell\" & nom & "\command\")
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\DesktopBackground\shell\" & nom & "\command\", "", Me.TextBox1.Text)
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\DesktopBackground\shell\" & nom & "\\", "icon", Me.TextBox1.Text)
+ 1 ligne pour verification si clé existe
et pas de prob , ca marche tres bien ...
Code : Tout sélectionner
Try
'déclaration d'une variable de type "clé de registre" nommée "Key" et initialisée à "Nothing"
Dim Key As RegistryKey = Nothing
'création de la sous clé de registre puis affecation dans la variable "Key"
Key = Registry.ClassesRoot.CreateSubKey(RegPath & "\Shell\NCTD")
'création de la "donnée de valeur" nommée "Lancer NCTD" de la clé "Key"
Key.SetValue("", "Lancer NCTD")
'création de la sous clé "command" puis de la donnée de valeur du "chemin de l'application"
Key.CreateSubKey("command").SetValue("", Application.ExecutablePath)
'création du nom "Icon" et de sa valeur "chemin de l'application" concaténé aux caractères ",0" afin de représenter l'icône du programme
Key.SetValue("Icon", Application.ExecutablePath & ",0")
'création du nom "Position" et de sa valeur "Bottom"
Key.SetValue("Position", "Bottom")
' fermeture des resources mémoire occupées par la variable "Key"
Key.Close()
'Gestionnaire d'exception
Catch ex As Exception
'Message à afficher avec l'exception trouvée (ex.Message)
MessageBox.Show("L'erreur suivante est survenue : " & ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Code : Tout sélectionner
Public Sub CreateRightClic(ByVal Posit As String)
Try
Dim Key As RegistryKey = Nothing
Key = Registry.ClassesRoot.CreateSubKey(RegPath & "\Shell\NCTD")
Key.SetValue("", "Lancer NCTD")
Key.CreateSubKey("command").SetValue("", Application.ExecutablePath)
Key.SetValue("Icon", Application.ExecutablePath & ",0")
If Not Posit Is Nothing Then
Key.SetValue("Position", Posit)
Else
Key.SetValue("Position", "Bottom")
End If
Key.Close()
Catch ex As Exception
MessageBox.Show("L'erreur suivante est survenue : " & ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
lol , c'est justement parce que celui la je le comprenais que je l'ai adoptéil ne faut pas se dire chouette ca fonctionne avec du code trouvé à droite et à gauche mais il faut en déduire la logique de raisonnement.
Tiens Olive ca fait longtemps qu'on ne t'a pas vu sur la toile .olive a écrit :Super sympa le résultat !
Merci de ce beau (et pratique) logiciel
Nice de te revoir Oliveolive a écrit :Super sympa le résultat !
Merci de ce beau (et pratique) logiciel