Inclure les ocx dans vos programmes

Soyez le premier à donner votre avis sur cette source.

Vue 13 357 fois - Téléchargée 2 348 fois

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

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
dimanche 16 novembre 2003
Statut
Membre
Dernière intervention
29 septembre 2006

ah j'ai retrouvé (et j'ai fais gaffe a la note ce coup là !) !

ça redirige les appels vers msvbvm60.dll (qui doit être toute surprise de les voir arriver chez elle mais bon elle est tres acceuillante).

voilà le lien : http://www.vbfrance.com/codes/COMMENT-DEBARRASSER-VB6FR-DLL-LIMITANT-COMPATIBILITE-APPLICATIONS-VB_20160.aspx

ça marche nickel, sans dec !
Messages postés
6
Date d'inscription
dimanche 16 novembre 2003
Statut
Membre
Dernière intervention
29 septembre 2006

hé les champions du vb, y a une moulinette qui supprime dans les exe compilés les appels à vb6fr.dll (ça les remplace par des appels a je sais plus quelle DLL qu'est toujours là). ça marche impec je m'en sert tous les jours ! (je me demande d'ailleurs a quoi elle sert la vb6FR !!!).

quand au prog du pére Draluorg (ça devait pas être facile a l'école avec un nom pareil), et bin il est génial ! c'est en fait une install automatique d'ocx planqués dans l'executable ! donc , en clair, tu as réécris le package d'installation en simplifiant tout : c'est du clic & play ! pas besoin de se lezarder la cafetiére avec l'installeur de vb6 qui doit être l'oeuvre d'un troupeau de poivrichons notoires à mon avis....

en tout cas merci les mecs, car depuis le temps que je vous copie-colle, ça mériterais facile un petrolier de cote du rhone !

LPG
Messages postés
8
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
6 mai 2008

Bonjour,
Ce code m'intéresse beaucoup, mais il ne marche pas tel quel en vb.net.
Est-ce-que quelqu'un aurais une solution ?

Merci d'avance.
Mat
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
c'est supprimé, tu n'as plus qu'à renoter.
Messages postés
201
Date d'inscription
jeudi 26 février 2004
Statut
Membre
Dernière intervention
30 juin 2008

sans le vouloir j'ai mis 1/10 a cette source. ce n'etait pas mon but car j'aurais vloulu lui mettre un 8/10. si une admin peut le corriger merci.
Afficher les 22 commentaires

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.