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 @+
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.