Inclure les ocx dans vos programmes

Description

Voila ceci est un module qui vous permet d'extraire et enregistrer vos ocx a partir de votre programme en les ayant prealablement mis dans un fichier de ressources personnalisee

pour l'exemple dans le zip j'ai utiliser comdlg32.ocx et reyXP_basics.ocx que j'ai renomme pour ne pas creer de confusion ils s'appelent ds l'exemple respectivement dialogg.ocx et basic.ocx

ceci vous permet donc de ne pas devoir faire un package pour distribuer vos applications!

Mais attention cela ne marche pas pour les Dll c'est assez logique me direz vous

toute fois si vous soulez vraiment vous debarasser de ce probleme, voici une astuce pour ceux que ca interesse mais ca reste assez nawoik:

vous prenez par exemple winrar (celebre logiciel de compression/decompression de fichiers)
vous faites un clic droit sur votre exe et vos dll et vous faite "ajouter a l'archive"
puis la plusieurs options s'offre a vous choisissez "archive sfx"
dans option sfx choisissiez "mode silencieux"
ensuite choisissez l'endroit que vous desirez et verifiez bien de cocher l'option "reecrire tous les fichiers"
puis vous verrez une option "lancer le fichier apres l'extraction" indiquez le fichier a lancer (votre exe)
et voila votre exe contient maintenant vos dll et les extraira avant de "se lancer"

voila en esperant que ca serve a certains @+ bonne prog et n'hesitez pas pour les comments

Source / Exemple :


Option Explicit
Dim b1() As Byte
Dim b2() As Byte

Sub Main()
Extrait ' on extrait les ocx ou dll sur le disk et on les enregistre
DoEvents
Form1.Show ' on lance le form "de demarrage"
End Sub

Sub Extrait() 'fonction pour extraire les ocx sur le disk
    Dim cc1, cc2
        cc2 = App.Path & "\dialogg.ocx"
        cc1 = App.Path & "\Basics.ocx"
        b1 = LoadResData(101, "CUSTOM") ' contient basic.ocx (reyXP_Basic.ocx)

If FileExist("" & cc1) Then GoTo 2 ' si le fichier existe deja on pass

    Open cc1 For Binary As #1 ' on extrait l'ocx
        Put #1, , b1
    Close #1
    DoEvents
2
If FileExist("" & cc2) Then GoTo Fin ' si le fichier existe deja on pass

b2 = LoadResData(102, "CUSTOM") ' contient dialogg.ocx (ComDlg32.ocx)

    Open cc2 For Binary As #1 'on extrait l' ocx
        Put #1, , b2
        DoEvents
    Close #1

DoEvents
    Shell "regsvr32 /s basics.ocx"
    Shell "regsvr32 /s dialogg.ocx"
Fin:
DoEvents
End Sub

'fonction pour verifier l'existance d'un fichier
Private Function FileExist(file As String) As Boolean
Dim L As Long
    On Error GoTo FExErr
        L = FileLen(file)
            FileExist = True
        Exit Function
FExErr: FileExist = False
Exit Function
End Function

Conclusion :


Bon bein pour tester si ca marche compiler le prog puis fermez le projet et supprimez les deux ocx et lancez le prog @+

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.