AAZ-Custo-Logon-Screen x86-x64 - V.finale- by Nash

Les autres créations de la Team
Avatar du membre
Nash
Administrateur du site
Administrateur du site
Messages : 4403
Enregistré le : sam. 6 nov. 2010 14:19
Localisation : 89
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Nash »

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

je le test pour autrre log ;)
Image
• Ryzen 9 5900x
• B550 AORUS PRO 
• RTX 3060ti phoenix 
• thermaltake core p8 tg
• 1 x SSD 500GB   PCIe4 M.2 SEA
• 32 G DDR4 3600 corsaire
• Corsaire 1000w full modulaire passive
• MasterLiquid ML240R RGB
•1 to stockage NVME.M2 PCIe
Avatar du membre
sh@rp
Membre VIP
Membre VIP
Messages : 585
Enregistré le : mar. 1 févr. 2011 13:03
Contact :
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par sh@rp »

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

je le test pour autrre log ;)
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. ;)
Le dev ne se réduit pas à du simple copier/coller de codes sources mais à une incommensurable phase d'apprentissage d'un domaine en perpétuelle évolution !
http://3dotdevcoder.blogspot.fr/
Avatar du membre
Nash
Administrateur du site
Administrateur du site
Messages : 4403
Enregistré le : sam. 6 nov. 2010 14:19
Localisation : 89
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Nash »

3 pour mettre et 3 pour enlever ...

mais pas tester , je look ca peut etre demain ;)
Image
• Ryzen 9 5900x
• B550 AORUS PRO 
• RTX 3060ti phoenix 
• thermaltake core p8 tg
• 1 x SSD 500GB   PCIe4 M.2 SEA
• 32 G DDR4 3600 corsaire
• Corsaire 1000w full modulaire passive
• MasterLiquid ML240R RGB
•1 to stockage NVME.M2 PCIe
Avatar du membre
Nash
Administrateur du site
Administrateur du site
Messages : 4403
Enregistré le : sam. 6 nov. 2010 14:19
Localisation : 89
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Nash »

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:
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)
apres encore une ligne pour "bas , haut , milieu"
+ 1 ligne pour verification si clé existe :)

et pas de prob , ca marche tres bien ...
Image
• Ryzen 9 5900x
• B550 AORUS PRO 
• RTX 3060ti phoenix 
• thermaltake core p8 tg
• 1 x SSD 500GB   PCIe4 M.2 SEA
• 32 G DDR4 3600 corsaire
• Corsaire 1000w full modulaire passive
• MasterLiquid ML240R RGB
•1 to stockage NVME.M2 PCIe
Avatar du membre
sh@rp
Membre VIP
Membre VIP
Messages : 585
Enregistré le : mar. 1 févr. 2011 13:03
Contact :
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par sh@rp »

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:
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)
apres encore une ligne pour "bas , haut , milieu"
+ 1 ligne pour verification si clé existe :)

et pas de prob , ca marche tres bien ...


Quand je parle d'exception c'est "Try...Catch...ex...end try" et non une conditionnel "If ...end if".
Lorsque tu écris des valeurs dans le registre je te conseil d'utiliser la gestion d'exceptions ca évitera à l'utilisateur d'avoir des fenêtres de quelconques erreurs du framework. ;)

Ton code peut sembler fonctionner mais de ce que je peux lire il n'en découle aucune logique puisque tu utilises des variables non typées et de plus tu ne les utilises pas.
Voilà à quoi doit ressembler la création d'un menu contextuel au clic droit :

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
Voilà pour la création de la clé

Mais il ne faut pas perdre de vue que ce code peut être réutilisé pour créer un menu contextuel selon la valeur de la variable sélectionnée par l'utilisateur : "Top, Center, Bottom" donc tu peut créer une procédure qui nécessite de lui passer cet argument comme ceci :

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


D'autre variables peuvent être ajoutées dans la signature de ta procédure afin de la rendre utilisable pour créer n'importe quel menu contextuel selon :

- le nom de l'item ("Lancer NCTD")
- le nom de la sous clé ("\Shell\NCTD")
- la valeur de l'icône ("Application.ExecutablePath & ",0")

Voilà je te laisse réfléchir pour la création d'une fonction de suppression A+

PS : 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. ;)
Le dev ne se réduit pas à du simple copier/coller de codes sources mais à une incommensurable phase d'apprentissage d'un domaine en perpétuelle évolution !
http://3dotdevcoder.blogspot.fr/
Avatar du membre
Nash
Administrateur du site
Administrateur du site
Messages : 4403
Enregistré le : sam. 6 nov. 2010 14:19
Localisation : 89
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Nash »

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.
lol , c'est justement parce que celui la je le comprenais que je l'ai adopté ;)

mais maintenant que tu m'as enfin donné le tien , je regarde ca comme il faut :)

merci :)
Image
• Ryzen 9 5900x
• B550 AORUS PRO 
• RTX 3060ti phoenix 
• thermaltake core p8 tg
• 1 x SSD 500GB   PCIe4 M.2 SEA
• 32 G DDR4 3600 corsaire
• Corsaire 1000w full modulaire passive
• MasterLiquid ML240R RGB
•1 to stockage NVME.M2 PCIe
olive
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par olive »

Super sympa le résultat !
Merci de ce beau (et pratique) logiciel
Avatar du membre
sh@rp
Membre VIP
Membre VIP
Messages : 585
Enregistré le : mar. 1 févr. 2011 13:03
Contact :
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par sh@rp »

olive a écrit :Super sympa le résultat !
Merci de ce beau (et pratique) logiciel
Tiens Olive ca fait longtemps qu'on ne t'a pas vu sur la toile . ;)
Le dev ne se réduit pas à du simple copier/coller de codes sources mais à une incommensurable phase d'apprentissage d'un domaine en perpétuelle évolution !
http://3dotdevcoder.blogspot.fr/
Zinzin
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Zinzin »

olive a écrit :Super sympa le résultat !
Merci de ce beau (et pratique) logiciel
Nice de te revoir Olive ;)
Avatar du membre
Nash
Administrateur du site
Administrateur du site
Messages : 4403
Enregistré le : sam. 6 nov. 2010 14:19
Localisation : 89
    unknown unknown

Re: AAZ-Custo-Logon-Screen x86-x64 - V 1.1 by Nash

Message par Nash »

merci toolman , j'ai cherché un bout de temps mais pas trouvé , aors me servait de l'exe ;)

plus rapide , je test ca ;)
Image
• Ryzen 9 5900x
• B550 AORUS PRO 
• RTX 3060ti phoenix 
• thermaltake core p8 tg
• 1 x SSD 500GB   PCIe4 M.2 SEA
• 32 G DDR4 3600 corsaire
• Corsaire 1000w full modulaire passive
• MasterLiquid ML240R RGB
•1 to stockage NVME.M2 PCIe
Répondre