Page 4 sur 11
Re: NCTD by Nash
Posté : lun. 11 juil. 2011 22:16
par sh@rp
Nash a écrit :De rien pour l'aide si ca peut te donner envie dans un éventuel apprentissage.
oui je pense , j'aime bien

:)
meme si sans les bases , c'est assez compliqué
ca ira peut etre mieux quand je me mettrai dans mes livres lol !
ps: pour le clique droit , j'ai pas du tout saisie

j'ai essayer plein de truc mais je bloque sur le chemin de l'exe aleatoire suivant utilisateur...?? c'est VB qui va chercher le chemin a inscrire dans le reg qu'il cré ?
j'ai chercher sur net mais tres peu de tuto traine la dessus !
la je suis en train de faire une fenetre sur les infos systeme (comme dans ton tuto sur my7
a force il va pas etre mal mon ptit log

:)
+++
En fait il faut que tu débutes par des petits projets simples :
- Lorsque tu cliques sur un bouton ca affiche dans une MessageBox le chemin complet de l'exécutable de ton appli.
Ca donnerait ca :
http://wallace87000.upd.fr/ShowAppPath.7z" onclick="window.open(this.href);return false;
Bonne prog.
Re: NCTD by Nash
Posté : mar. 12 juil. 2011 01:43
par Nash
oufffffff nikel
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
If ComboBox2.SelectedItem = "Ajouter au clique droit" Then
AppPath = Application.ExecutablePath
Me.TextBox1.Text = AppPath
WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\", "Modifier son horloge", "REG_SZ")
WshShell.RegWrite("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\icon", Me.TextBox1.Text, "REG_SZ")
WshShell.RegWrite("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\Position", "Bottom", "REG_SZ")
WshShell.RegWrite("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\command\", Me.TextBox1.Text, "REG_SZ")
my god , j'en ai chier lollllllllllll au moins 45 essaies
merci , merci , merci

:):)
j'ai essayer un case pour l'inverse lol (tu rigoles pas )
ElseIf ComboBox2.SelectedItem = "Retirer du clique droit" Then
WshShell = CreateObject("WScript.Shell")
WshShell.delreg("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\", "Modifier son horloge", "REG_SZ")
WshShell.Regdel("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\icon", Me.TextBox1.Text, "REG_SZ")
WshShell.Regdel("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\Position", "Bottom", "REG_SZ")
WshShell.Regdel("HKEY_CLASSES_ROOT\DesktopBackground\Shell\NCTD\command\", Me.TextBox1.Text, "REG_SZ")
essayer "regdel , delreg , etc...mdr
je regarderais sur net demain

la il est temps de faire dodo
++++++++
Re: NCTD by Nash
Posté : mar. 12 juil. 2011 10:45
par Nash
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
My.Computer.Registry.ClassesRoot.DeleteSubKeyTree("DesktopBackground\Shell\NCTD\")
End Sub
plus simple et plus propre
version 1.5 :
ajouts de la case options pour pouvoir mettre ou retirer l'application du clique droit sur bureau
merci

Sh@rp , encore
ps:je voulais faire par checkbox , je reussi en cochant a appliquer les modifs , mais comment mettre ma ligne :
My.Computer.Registry.ClassesRoot.DeleteSubKeyTree("DesktopBackground\Shell\NCTD\")
pour qu'elle soit operationnelle en "decochant " la checkbox ??
Re: NCTD by Nash
Posté : mar. 12 juil. 2011 19:53
par sh@rp
Nash c'est de la programmation et si tu ne gère pas les différents scénarios l'utilisateur rencontrera forcément des problèmes.
Imagines simplement que la sous-clé "NCTD" n'existe pas dans le registre de l'utilisateur et qu'il veuille supprimer l'item du clique droit en cliquant sur ton Button2 ----> Ca génèrera une erreur du framework. OO (Message d'erreur : Impossible de supprimer une sous-clé, car elle n'existe pas.)
Il faut gérer toutes les possibilités en tant que dev sinon tu auras du support toutes les 5 minutes à assurer.

Dans ton cas tu dois déterminer avant de vouloir supprimer cette sous-clé si elle existe ensuite tu peux la supprimer. Ne brûles pas les étapes.
Pour agir sur l'évènement cocher/décocher d'une checkBox il faut que tu créés le gestionnaire d'évènement "CheckedChanged" de ton objet "CheckBox".
De plus c'est bien de vouloir mettre en place une checkBox mais il faut aussi avant de demander à l'utilisateur de cocher ou décocher, déterminer l'état de la case à cocher au lancement de l'appli (le menu contextuel existe-t-il dans le registre si oui je code de facon à cocher la case au lancement de l'appli....).
A+
Re: NCTD by Nash
Posté : mar. 12 juil. 2011 21:07
par jeff64
Be cool Nash

Re: NCTD by Nash
Posté : mar. 12 juil. 2011 21:44
par Nash
lol j'apprends , toujours cool moi

:)
exact pour l'erreur du framework
faut je corrige ca , ca devrait aller

(2 h pas plus lol )
pour le reste j'ai piger ton raisonnement (logique) , je m'en occupe quand j'ai un peu de temps

Re: NCTD by Nash
Posté : mer. 13 juil. 2011 01:43
par Nash
version 1.5.1
-correction du message d'erreur pour retrait du raccourci clique droit si celui ci n'est pas present (1h30 pfff

)
-verifications de la clé reg pour l'ajouts et le retrait de l'utilitaire au clique droit
-ajouts de boite de dialogue pour confirmer "l'ajouts ou le retrait clique droit"
NCTD V1.5.1 by Nash
en prevision une fonction "sauvegarder le timedate.cpl sur le DD" et peut etre "Appliquer votre propre timedate.cpl
mais ca on verra suivant les difficultées
+++++
Re: NCTD by Nash
Posté : mer. 13 juil. 2011 08:34
par jeff64
Super et merci

Re: NCTD by Nash
Posté : mer. 13 juil. 2011 09:50
par Nash
arfff
un truc bizarre
l'application marche tres bien avec l'exe , mais message d'erreur a l'ouverture et bouton appliquer les modifs ne marche pas si je le lance du raccourci clique droit !!!!!
bizarre pourtant le raccourci clique droit appelle bien le meme exe !???
ca le fait chez toi jeff64?
************** Débogage JIT **************
Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
application ou cet ordinateur (machine.config) doit avoir la valeur
jitDebugging définie dans la section system.windows.forms.
L'application doit également être compilée avec le débogage
activé.
c'est du chinois la ::)
apres test , on dirait que l'applicationne trouve pas le dossier "sources" ou sont mes bat et cpl...bizarre , pourquoi en cliquant sur l'exe original , il les trouves ??
Re: NCTD by Nash
Posté : mer. 13 juil. 2011 12:08
par Nash
bon je continu avec mes problemes lol
le dossier "resources" , bien compliqué ca :
jai mis un exe dedans : mmm.exe
puis en lancant script :
My.Computer.FileSystem.WriteAllBytes(Application.StartupPath & "\mmm.exe", My.Resources.mmm, False)
j'obtiens erreur :
Erreur 1 'mmm' est un type dans 'Resources' et ne peut pas être utilisé en tant qu'expression. D:\AAAVB\NCTD2\NCTD\Form1.vb 115 88 NCTD
j'ai fais beaucoup de recherche et ca a l'air bien compliqué d'extraire un fichier du dossier "resources" de l'application ???
@ sh@rp :
toutes tes applications sont en 1 seul exe , pas de dossier joint a coté de l'exe !
j'en deduis que tu integres tes outils s'il y a dans le dossier "resources" ??
j'ai deja vu des programmes qui copie a l'ouverture de celui ci les outils necessaires dans Application.StartupPath ...donc c'est bien que ces fichiers sont dans le dossier resources puis copier ensuite dans le repertoire voulu ?
hummm je sens vais passer du temps la dessus lolll