begin process at 2010 02 09 22:12:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Ajouter fonction à .exe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajouter fonction à .exe

jeudi 26 juin 2008 à 00:16:43 | Ajouter fonction à .exe

FMatrix07

Bonsoir,

J'ai développer un soft qui fonctionne maintenant correctement.
Mais il me vient une question, si je souhaite ajouter une fonction à mon soft sans avoir à recompiler ma source est ce possible ?

Je m'explique:
ex: mon soft aujourd'hui fait ouverture d'une form avec une liste box
demain je souhaite ajouter une deuxieme fontion au soft, ouverture d'une deuxieme form
mais je ne veux pas recompiler comment faire?

Je pensais à certain logiciel qui font un peu ça avec des plugings à telecharger mais je ne vois pas comment faire.

Si quelqu'un avait une idée, car mes recherches meme ici ne donne rien.

@+:

SCCréat

Mail:
Stéphan.COCHET
jeudi 26 juin 2008 à 00:55:55 | Re : Ajouter fonction à .exe

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Oui, les plugins, pourquoi pas MAIS il faut le prévoir dans l'EXE d'origine.
Mais les plugins en VB6, j'ai jamais tenté, mais c'est surement coton (Voir les quelques codes à ce sujet avec la recherche)
Dans tous les cas, il te faudra recompiler et redistribuer

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
jeudi 26 juin 2008 à 01:28:52 | Re : Ajouter fonction à .exe

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
salut,

umm... pas besoin de recompiler, suffira juste de faire "propre" la première fois.
ex : toujours la même classe interface dans l'activex (plugin)  pour avoir la même architecture d'appel.

ensuite à chaque lancement l'exe liste toutes les dll du répertoire voulu, les enregistre, et comme les appels "de départ" sont les mêmes, roule ma poule

puis selon chaque plugin ils savent ensuite comment (se / ) quoi gérer.
par contre mieux vaut éviter de penser à la communication interplugins. le 3 qui fonctionne avec le 2.... qui peut ne pas exister

voir dans ma source SkinB2 (par exemple) pour le fonctionnement de dll enregistrées par l'exe. en l'occurrence je m'en sers comme simples ressources (pas de méthode) mais il y a les propriétés identiques pour chacune, avec le même nom de class etc...

++

Prenez un instant pour répondre à ce sondage svp
jeudi 26 juin 2008 à 04:14:57 | Re : Ajouter fonction à .exe

FMatrix07

Bonjour,
 
Merci de vos réponses, je me doutais bien que c'était avec des plugings mais maintenant il faut que je touve une source expliquant completement comment bien les utiliser.

Ce qui ne va pas etre simple !

Si vous en avez déjà vu ou utilisé n'hesitez pas à me le faire savoir

@+:

SCCréat

Mail:
Stéphan.COCHET
jeudi 26 juin 2008 à 05:20:24 | Re : Ajouter fonction à .exe

Kevin.Ory

Salut FMatrix,
Je suis justement en train de développer une application avec laquelle je me suis initié à la gestion des plugins. En fait, j'avais commencé par un style "tout-plugin": mon exe n'était rien d'autre qu'un "splash-screen" et un lanceur de plugins. L'interface principale, les données et tout le reste était des composants chargé dynamiquement.
Mais comme le dit PCPT: "par contre mieux vaut éviter de penser à la communication interplugins.". En effet, c'était mon cas. Chaque composant communiquait avec les autres, et c'est vite devenu un gros bordel. J'ai donc très vite abandonné l'idée de faire une appli "tout-plugin" et j'ai créer une appli normale, ce qui à grandement réduit le code (Le support des plugins est encore présent). Mais tout dépend des cas aussi
Voici comment ça fonctionne dans mon appli (en simplifié):

Dans l'application, il y a:

1° L'architecture des plugins. Il s'agit de déclarer les propriétés et les méthodes du plugin.
Le plus simple pour la suite, c'est de créer une interface pour faire ça. L'inconvénient, c'est que tu ne pourra pas y ajouter de nouveaux membres par la suite.

Public Interface IPlugin
    ReadOnly Property Name As String   ' Nom du plugin
    Sub Load(TE As AppDatas)              ' Chargement des donnnée
    Sub Install()                                       ' Installation dans l'interface
End Interface

Tous les plugins devront donc implémenter cette interface pour pouvoir être chargé par le programme.

2° Le partage des données entre l'appli et les plugins. Ca peut être tout et n'importe quoi, dans mon cas il s'agit d'une classe comportant de nombreuses méthode et propriété pour pouvoir accéder aux interfaces graphiques, au données et à tous les autres éléments de mon application. Dans le cas suivant, les plugins pouront accéder à une ListView de l'interface principale:

Public Class AppDatas

    Friend Sub New(MainForm as frmMain)  
       Me.MainForm = MainForm
    End Sub
    Private MainForm as frmMain

    Public ReadOnly Property ListView As ListView
       Return MainForm.ListView1
    End Property

End
Class

3° Le chargement des plugins:

       Dim DLLs As String() = IO.Directory.GetFiles([Dossier contenant les DLL], "*.dll")

        ' Parcourir chaque DLL
        For Each File As String In DLLs
            Try
                '
Charger l'assembly
                Dim dll As Reflection.Assembly = Reflection.Assembly.LoadFrom(File)
                Dim Types As Type() = dll.GetTypes

                ' Parcourir chaque type contenu dans la DLL à la recherche d'une
                ' classe implémentant IPlugin

                For Each tp As Type In Types
                    If tp.IsClass Then
                        If tp.GetInterface("IPlugin", True) IsNot Nothing Then
                            ' Une classe implémentant IPlugin à été trouvé, la charger
                            Try
                                Dim Plugin As IPlugin = dll.CreateInstance(tp.ToString)
                                Plugin.
Load(Me.AppDatas)
                                Console.WriteLine(Plugin.Name & " à été chargé")
                            Catch ex As Exception
                                ' Erreur lors du chargement du plugin
                                MsgBox("Impossible de charger le composant '" & tp.Name & "' du fichier '" & File & "'" & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.OkOnly Or MsgBoxStyle.Critical, "Erreur")
                            End Try
                        End If
                    End If
                Next
            Catch ex As Exception
                ' Erreur lors du chargement de l'assembly
                MsgBox("Le fichier '" & File & "' n'est pas un assembly valide", MsgBoxStyle.OkOnly Or MsgBoxStyle.Critical, "Erreur")
            End Try
        Next


Et voilà
jeudi 26 juin 2008 à 05:22:41 | Re : Ajouter fonction à .exe

Kevin.Ory

Harf.. on est en VB6

I'm sorry, It's because it's very very late 


Cette discussion est classée dans : exe, fonction, ajouter, soft, souhaite


Répondre à ce message

Sujets en rapport avec ce message

un GROS dilem .... ouverture d'un exe !!! [ par Kisamigueri ] Bonjour tout le monde !! Je voudrais savoir comment ouvrir une application exe (externe à mon prgramme VB) à l'aide d'un bouton.Mais ATTENTION: je veu appel d'une fonction dans une dll [ par sena ] Bonjourje fais l'appel d'une fonction dans une DLL (faite en C++)Quand je compile l'exe et que je l'execute, ca fonctionne PARFAIT.Mais quand je veux mise à jour de mon soft [ par hyksos ] VOilà mon soft se connecte sur mon serveur et télécharge la MAJ si disponible. Le problème c que suis obligé dans un premier temps de télécharger sous URGENT : Recherche de la fonction VB pour ajouter des pages dans Word [ par sosososo ] Bonjour,J'ai besoin de la fonction en VB pour ajouter des pages à un document Word. Merci de me donner un ou des exemples d'application. Merci d'avanc comment ajouter des commentaires dans une fonction excel ? [ par barbidou ] je souhaiterais pour ajouter un descriptif des arguments d'un fonction sous VBA EXCEL afin que celui ci apparaisse lorsque j'insère la fonction via le ajouter un menu dans un .exe [ par Duanra ] Duanra dit:Je cherche une solution pour lancer un programme via un lecteur multimédia, WinMediaPlyer par exemple...Alors si quelqu'un peut m'expliquer Parametres dans fonction Shell [ par lucio57 ] Bonjour,J'ai crée un programme qui appelle un exe par la fonction shell.Je cherche à passer des paramêtres extraient du programme dans cet exe et je n Help me !!!!!!!!!!!!!!!!!!!!!!!! [ par lcastell ] Bonjour,J'utilise la fonction Shell pour associer un programme d'impression avec un fichier dans lequel nous avons l'emplacement des variables (PDC). Demander à un executable de faire un executable [ par Francky23012301 ] Bon à force de voir mes messages, il y en a qui vont peter les plombs. D'autre qui vont me poser une question qui va me faire sourir. Sous Delphi (im Ajouter un élément à une listbox à l'aide de la fonction SensMessage [ par BozzoDodo ] Bonjour, je veux ajouter un élément à l'aide de la fonction Sendmessage. Ca donne: SendMessage lstHWnd, LB_ADDSTRING, 0, "test" Je ne comprends pas


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales