Inclure les dll et les ocx dans vos programmes (sauf vb6fr.dll)

Soyez le premier à donner votre avis sur cette source.

Vue 11 488 fois - Téléchargée 1 236 fois

Description

C'est une source de Draluorg que j'ai amélioré (http://www.vbfrance.com/code.aspx?id=29078)
car la sienne extrayait dans le repertoire de l'application, alors que la mienne extrait dans le repertoire systeme de windows.

Source / Exemple :


'code du module :
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Dim repsysteme As String 'variable qui sert a stoquer le sysdir

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

Sub Main()  'Attention, il est nécessaire de mettre _
dans les options du projet qu'il faut demarrer par Sub Main()
    'fonction de recup du system directory
    Dim Ret As Long
    repsysteme = Space(255) ' creer un espace reservé
    Ret = GetSystemDirectory(repsysteme, 255) 'stocke dans ret le repertoire, avec des espaces en bout de string
    repsysteme = Left$(repsysteme, Ret) 'enleve les espaces qui servent a rien et stoque le rep dans repsysteme
    'fin de la fonction
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 (dans le repertoire systeme)
    Dim cc1, cc2
        cc2 = repsysteme & "\dialogg.ocx"
        cc1 = repsysteme & "\Basics.ocx"
        b1 = LoadResData(101, "CUSTOM") ' contient basics.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"  'et la on enregistre les dll
    Shell "regsvr32 /s dialogg.ocx"   'le /s met regsvr32 en mode silentieux
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 :


Merci a Draluorg qui a inventé cette source !!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
Bonjour,

(Ouch, ça me rajeuni pas ce topic)

Je ne suis pas sur de comprendre la question. Il n'y a pas besoin de clé.
Globalement, il met les .ocx nécessaires en ressources du programme. Au lancement du programme, il extrait les .ocx, les copie dans system32 et fait un regsvr32 pour les registrer.

Mais il est généralement plus propre et plus simple de passer par un setup, généré via InnoSetup par exemple.
http://www.vbfrance.com/tutoriaux/INSTALLATION-AVEC-INNOSETUP_590.aspx

Il faut faire cependant bien attention à préciser à InnoSetup tous les fichiers nécessaires, avec enregistrement ou non (regserver) suivant le type de dll.

Pour tout programme, il faut msvbvm60.dll (Avec regserver) et vb6fr.dll (Sans regserver). Les autres dépendances classiques (comcat, ole32...) devraient être présentes.
Messages postés
151
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
19 avril 2016

comment obtenir une clé pour utiliser ce programme ?
comment fonctionne-t-il ?
salut et remerciements anticipés. Babu
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Un prog VB ne se distribue qu'avec un setup complet qui installera les runtimes VB sinon bien entendu qu'un prog VB ne tournera pas seul, c'est la différence entre le natif(C/C++ et ASM par exemple) et l'interprété (VB et .NET). Dans un cas l'exe contient toute sa logique et ne fait appel qu'aux fonctions du système pour l'affichage et trucs de ce genre et dans l'autre le code est à chaque tour traduit dans une virtual machine avant redirection vers les composants système.
Messages postés
15
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
19 avril 2006

Me demande >>> A quoi bon programmer en Vb si notre application peut s'avérer inutilisable par l'utilisateur s'il n'a pas les dll et les ocx nécessaires a son fonctionnement... Autrement dit, si on veut que notre application soit applicable, il faudrais que l'utilisateur ait acheté VB. Donc, les applications Vb seraient-elle déstinées uniquement aux développeurs ?
OvO est un utilisateur s'étant appliqué a développer ce commentaire.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
Gagou9,

Je te remet mon lien qu'est un peu perdu dans tous les messages.

http://www.vbfrance.com/tutorial.aspx?ID=240

Sinon, c'est sympa les écoles d'ingé d'info: j'y ai pas encore vu un PC ! Y a que des terminaux connectés à des serveurs Unix et Windows.

Plus de restrictions que ça, tu meurs.

Et le langage le plus utilisé semble être le C... sous Unix!!!!!!
Afficher les 60 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.