Comment lancer une DLL depuis une invite de commande. [Résolu]

Signaler
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010
-
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010
-
Bonjour a tous,
Premierement, je suis un grand debutant.

J'ai une DLL du type :

Public

Class MyMainClass

      Function SendMsgToUser(
ByVal Mes
As
String)
As
String
            MsgBox(
My.Computer.Clock.LocalTime &
" "
& Mes)

         Return
"sent"

      End
Function
End
ClassJe souhaite lancer l'execution du code depuis une invite de commande (ou commande shell) avec un parametre string ?
Que dois-je ajouter au contenu de la DLL ?

J'aimerai un truc du genre : MaDLL.dll -SendMsgToUser
"Je vais au marche."

Est-ce possible ?

Merci,
Jerome.

14 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
je te l'ai dit: pas faisable en VB.Net
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
RunDll.exe
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

Merci pour ta reponse.
Malheureusement je ne parviens pas a lancer la DLL avec l'execution de la fonction.
Pourrais-tu me donnner la syntaxe?
Je fais : rundll.exe MaDll.dll MyMainClass.SendMsgToUser("Essai").
Mais cela ne fonctionne pas.
Je pense qu'il doit faloir ajouter des infos dans la dll, non ?

Merci,
Jerome.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
je ne pense pas que cela fonctionne avec ta dll .Net...

pourquoi dois tu passer par ca ?

tu peux faire une appli exe normale...(ou en console)
et lire les arguments de ligne de commande, comme tout le monde
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

En fait ma DLL devra communiquer avec windows explorer donc j'aimerai eviter les EXE.
Aussi elle pourrait etre lancee directement et eviter d'avoir un process qui tourne.

Je suis desole mais ne comprend pas l'interet de la commande rundll.exe si nous ne pouvons pas specifier quelle function ou sub demarer? je pense que je suis un peu perdu ?
Pourrais-tu m'en donner les avantages?
Merci encore.
Jerome.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
rundll permet de lancer la fonction de ton choix, mais là, tu joues en .NET, un simple LoadProcAdress est inefficace...

"devra communiquer avec windows explorer donc j'aimerai eviter les EXE."

je pige pas bien le lien de cause a effet...
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

En fait mon objectif est de creer un addin a windows explorer. Je souhaite dans le menu du click de droite ajouter un element qui copiera des elements historiques du clipboard.
On m'a conseille de faire une DLL appellee a partir des commandes shell presentes dans HKCLASSROOT du registre.

Dans ce cas la commande shell lancerait la DLL avec comme parametre l'element clique par l'utilisateur.
Je pense tout de meme qu'il doit y avoir un moyen meme si on joue en .NET?

Merci beaucoup
Jerome.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
il s'agit d'une "shell extension"

http://www.keyongtech.com/432355-creating-shell-extensions-in-c

déconseillé en .NET
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

Ok merci pour le lien.
Mais pour ma culture perso comment fait-on pour lancer une fonction specifique au sain d'une DLL avec une commande runddl.exe ?

Merci,
Jerome.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
en gros:

rundll32.exe MaDll.dll,SendMsgToUser Essai
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

Merci pour la syntaxe. Toutefois certain elements doivent manquer dans ma DLL car je recois un message : missing entry point sendMsgToUser.
As-tu une idee ?
Merci.

Merci,
Jerome.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
il faut bien évidemment que ta dll exporte cette fonction...
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

Et comment ceci peut-il etre defini en terme de code.?
Que dois-je rajouter a mon code ci dessus pour le faire ?

Merci,
Jerome.
Messages postés
52
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
23 février 2010

Ok merci de tes precieuses informations.

Merci,
Jerome.