Salut, je ne programme pas en VBS, plus en mIRC, mais je suis confronté à un problème qui touche les deux parties J'essaye (oui je suis fou) de recréer le menu contextuel de Windows, en mIRC donc. Après de nombreuses recherches j'ai vu re revus les "Verbs" et "InvokeVerb". Après tout ce que j'ai pu en voir, je sais à peu près que, par exemple, pour lancer la commande "Ouvrir" du menu, il faut faire objFolderItem.InvokeVerb(open) (j'ai le bon code en mIRC), pour afficher les propriétés d'un fichier/dossier, il faut faire objFolderItem.InvokeVerb(properties) J'ai presque toutes (?) les correspondances entre les noms et ces commandes, voici celles que j'ai trouvé: Nom - Commande Ou&vrir - open &Imprimer - print &Couper - cut Co&pier - copy Créer u&n raccourci - link Suppri&mer - delete R&enommer - rename P&ropriétés - properties
Jusque là, pas de problème. Vue que le menu n'est presque jamais fixe, beaucoup d'items changent. Il me faut donc quelque chose pour lister ces items du menu. Qu'à cela ne tienne.. j'a fait un alias (en mIRC) pour lister ces "Verbs" J'ai donc été faire un tour sur MSDN: http://msdn2.microsoft.com/en-us/library/ms630699.aspx Pour avoir des infos sur la méthode verbs Voici donc l'alias en mIRC. S'il ne vous servra pas à grand chose, il me servira à vous montrer mon problème (On y viens, enfin !)
Code :
alias getverbs {
if ($com(Application)) .comclose application
if ($isfile($1-)) var %file = $1-, %dir = $nofile(%file)
if (!$com(Application,Namespace,1,bstr,%dir,dispatch* ParseName)) return $false
.comclose Application
if ($com(ParseName)) {
if (!$com(ParseName,ParseName,1,bstr,$nopath(%file),dispatch* InvokeVerb)) return $false
.comclose ParseName
}
if ($com(InvokeVerb)) {
if (!$com(InvokeVerb,Verbs,1,dispatch* verbs)) return $false
.comclose InvokeVerb
}
if ($com(verbs)) {
if (!$com(verbs,Count,3)) return $false
var %a = 1, %d = $com(verbs).result
while (%a <= %d) {
echo -a $comval(verbs,%a,name)
inc %a
}
.comclose verbs
}
return $true
}
Syntaxe: //noop $getverbs(Fichier/Dossier)
à la fin, se trouve la ligne " echo -a $comval(verbs,%a,name)" C'est celle ci qui permet de faire la liste des noms des items. Comme je l'ai dit précédement, à un "nom" est associée une "commande", open pour Ouvrir, print pour Imprimer. Mais voilà, dans $comval(verbs,%a,name), name permet de donner le nom, Ou&vrir, &Imprimer etc.. Et je ne sais pas quoi mettre pour avoir la "commande" qui y est associée !! Voilà mon soucis Donc si quelque se sent d'attaque pour m'aider, sortez les mirc.exe, collez le code dans vos remote et changez c'te foutu valeur "name" pour voir si quelque chose d'autre sort ;D C'est un problème épineux, je remercie d'avance ceux qui auront le courage de m'aider en ces périodes de fêtes..
Merci, et Bonne année, bonne santé !
Message édité par LuckyFranck le 28-12-2006 à 20:16:28
Marsh Posté le 28-12-2006 à 20:14:38
Salut, je ne programme pas en VBS, plus en mIRC, mais je suis confronté à un problème qui touche les deux parties
J'essaye (oui je suis fou) de recréer le menu contextuel de Windows, en mIRC donc.
Après de nombreuses recherches j'ai vu re revus les "Verbs" et "InvokeVerb". Après tout ce que j'ai pu en voir, je sais à peu près que, par exemple, pour lancer la commande "Ouvrir" du menu, il faut faire objFolderItem.InvokeVerb(open) (j'ai le bon code en mIRC), pour afficher les propriétés d'un fichier/dossier, il faut faire objFolderItem.InvokeVerb(properties)
J'ai presque toutes (?) les correspondances entre les noms et ces commandes, voici celles que j'ai trouvé:
Nom - Commande
Ou&vrir - open
&Imprimer - print
&Couper - cut
Co&pier - copy
Créer u&n raccourci - link
Suppri&mer - delete
R&enommer - rename
P&ropriétés - properties
Jusque là, pas de problème.
Vue que le menu n'est presque jamais fixe, beaucoup d'items changent. Il me faut donc quelque chose pour lister ces items du menu.
Qu'à cela ne tienne.. j'a fait un alias (en mIRC) pour lister ces "Verbs"
J'ai donc été faire un tour sur MSDN: http://msdn2.microsoft.com/en-us/library/ms630699.aspx Pour avoir des infos sur la méthode verbs
Voici donc l'alias en mIRC. S'il ne vous servra pas à grand chose, il me servira à vous montrer mon problème (On y viens, enfin !)
Syntaxe: //noop $getverbs(Fichier/Dossier)
à la fin, se trouve la ligne " echo -a $comval(verbs,%a,name)"
C'est celle ci qui permet de faire la liste des noms des items.
Comme je l'ai dit précédement, à un "nom" est associée une "commande", open pour Ouvrir, print pour Imprimer.
Mais voilà, dans $comval(verbs,%a,name), name permet de donner le nom, Ou&vrir, &Imprimer etc..
Et je ne sais pas quoi mettre pour avoir la "commande" qui y est associée !!
Voilà mon soucis
Donc si quelque se sent d'attaque pour m'aider, sortez les mirc.exe, collez le code dans vos remote et changez c'te foutu valeur "name" pour voir si quelque chose d'autre sort ;D
C'est un problème épineux, je remercie d'avance ceux qui auront le courage de m'aider en ces périodes de fêtes..
Merci, et Bonne année, bonne santé !
Message édité par LuckyFranck le 28-12-2006 à 20:16:28