Recherche de ID pour un resource

Résolu
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010 - 18 sept. 2006 à 18:53
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010 - 20 sept. 2006 à 17:04
salut à tous,
g chercher trop sur un code pour mettre des tas de fichiers ocx et dll dans un exe pour rendre touts une application indepandant des fichiers dlls et ocx sauf kelk un (comme vb6fr.dll )bon g trouvé un source pour ajaja  : voilà le code

Set z = CreateObject("scripting.filesystemobject").getspecialfolder(1) 'avoir la reperatoire windows
    Index = 100 'index de la ressource
    myocx = "comdlg32.dll" 'nom du ocx
    If Dir(z & "\" & myocx) <> "" Then GoTo done
    resdata = LoadResData(Index, "Custom") 'mettre le fichier en mémoire
    'écrire l'ocx
    Open z & "\" & myocx For Binary Access Write As #1
        Put #1, , resdata
    Close #1
mé le problem si je vx integrer autre tipe tel ke dll ...... keske je vais mettre comme Index et  parquoi faut-il remplacer "Custom" en resdata =loadResData(101, "Custom")

SVP si klk peu me cité un tuto j'en ai  trop besoin
Merci d'avence @++++

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 sept. 2006 à 07:01
Pas de problèmes, le principal, c'est que tu corrige le tir dès maintenant en n'écrivant plus en sms ;)

Pour ton problème d'écriture, je te conseille de remplacer les id donnés par défaut (101, 102, etc.) par des chaînes en clair du style : "mscomcfg.ocx', etc.

Pour l'écriture d'un fichier dll, voici un petit bout de code qui devrait t'interesser :
Private Function IsPresent(ByVal sRessourceType As String, ByVal sRessourceName As String) As Boolean

'======================================================================
'Function : IsPresent
'Date : 13/02/2005
'Auteur : DarK Sidious
'But : Permet de savoir si une ressource est présente ou non
'======================================================================

'on active la routine de traitement d'erreur
On Error GoTo erreur0

'déclaration des variables privées
Dim byBuffer() As Byte

    'on essaye d'extraire la ressource
    byBuffer = LoadResData(sRessourceName, sRessourceType)

'la fonction a réussie
Let IsPresent = True
Exit Function

'routine de traitement d'erreur
erreur0:
'Problème : La ressource n'est pas présente
'Solution : On renvoie une valeur d'erreur : False

Let IsPresent = False

End Function

Private Function ExtractFile(sFileName As String, sRessourceType As String, sRessourceName As String) As Boolean

'======================================================================
'Function : ExtractFile
'Date : 13/02/2005
'Auteur : DarK Sidious
'But : Permet d'extraire un fichier des ressources
'======================================================================

'on active la routine de traitement d'erreur
'On Error GoTo erreur0

'déclaration des variables privées
Dim byBuffer() As Byte

    'on extrait la ressource
    byBuffer = LoadResData(sRessourceName, sRessourceType)
    ReDim Preserve byBuffer(UBound(byBuffer))
   
    'on écrit le fichier
    Open sFileName For Binary Access Write As #1
       
        Put #1, , byBuffer
       
    Close #1

'la fonction a réussie
Let ExtractFile = True
Exit Function

'routine de traitement d'erreur
erreur0:
'Problème : On n'a pas pu enregistrer la dll
'Solution : On quitte la fonction avec une valeur d'erreur : False

Let ExtractFile = False

End Function

Et pour s'en servir, par exemple :

    Let sNomDossierSysteme = Space(128)
    Let lNomDossierSysteme = 128
    Let lNomDossierSysteme = GetShortPathName(SystemPath, sNomDossierSysteme, lNomDossierSysteme)
    Let sNomDossierSysteme = Left(sNomDossierSysteme, lNomDossierSysteme)
    If IsPresent("CUSTOM", "OCX_FTP") Then

        If ExtractFile(sNomDossierSysteme & "\TxFTP.ocx", "CUSTOM", "OCX_FTP") Then

            Let sNomFichier = sNomDossierSysteme & "\TxFTP.ocx"
            Call Shell("regsvr32 /s " & sNomFichier)
           
        End If
       
    End If

Cette méthode est très bien adaptée pour faire un patcheur perso (c'est celle que j'utilise depuis quelques années sur plusieurs projets, et elle marche très bien, à conditions de ne pas se planter dans les versions des dll !).
Mais si ton but c'est d'avoir un exe indépendant de tout fichier, ne cherche pas, c'est pas possible ! Il te manquera forcément des dépendances vers les fichiers de la machine virtuelle de vb, et sans ceux-ci, tu ne pourras pas lancer ton exe => obligation de passer par un setup, comme dit un peu partout sur le forum et les sources !
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 sept. 2006 à 19:02
Je ne sais pas quelle langue tu parles, mais je n'est abolument rien compris à ce que tu demande.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 sept. 2006 à 19:44
et puis si tu avait lu le règlement, et suivi les règles, tu aurais déjà trouvé la réponse !
0
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010
18 sept. 2006 à 19:48
merci en tous cas
et tu vx savoir ( mr casy)  je parle l'arabe,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 sept. 2006 à 20:33
Tu parle, ce que veux ça me regarde pas. Tu n'es pas le seul à parler plusieurs langues. Et si tu as dis ça, pour m'impressionner, tu as rater la cible.

Par contre, ici, c'est un forum français, donc on parle et on écrit surtout en (vrai) français.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 sept. 2006 à 20:44
Que tu parle arabe ou japonais ne te dispense pas de respecter le règlements Codes-Sources qui a été écrit pour TOUT les membres, qu'ils soient français ou étrangers !
0
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010
18 sept. 2006 à 23:28
pardon les amis, j'ai oublié qu'il faut parler français et nn pas un langage SMS


je suis vraiment désolé ,


maintenant je cherche quelqu'un peut me siter un tuto ou je peux trouvé un cours sur les ressource (*.res) et command ecrire là dans, car j'ai trouvé un tous bout de code consernant l'indepandance d'une application des fichier dll et ocx , parce que j'en ai vraiment besion, 
Merci d'avence pour tous cas
et je réexuse Mr casy et Mr Admin  j'en ai honte
0
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010
19 sept. 2006 à 19:46
merci bien, mais j'arrive pas à utiliser ton programme car il me manque cette fonction : GetShortPatchName(), mais bon sava rouler.
et ce qui conserne  les ressource j'adapte pas bien sa fonctionnement et qu'est ce qu'ils sont en verité, si quelqu'un a une idée peu m'expliquer car je sus un super debutant j'ai besoin de l'aide..
-------------------------
Merci d'avence
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 sept. 2006 à 20:11
le fichier de ressource, c'est tout simplement pour spécifier à vb de rajouter des informations binaires à la fin de l'exe qui sera compilé avec, et qu'on peux y accèder par un id.
0
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010
20 sept. 2006 à 13:20
ah merci et donc à la compilation du projet et l'ecriture de fichier exe , automatiquement  le contenu de l'ocx ou de dll et rajouté à la fin du exe ,,,, et que se code que tu a ma donné est utiliser pour extrair ces donné !??
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 sept. 2006 à 14:32
Tout à fait, je m'en sers dans un programme de patcheur pour mettre à jour les dll de mes logiciels.
0
cs_dectroo Messages postés 30 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 31 mars 2010
20 sept. 2006 à 17:04
ah bon j'ai comprie mais pour le mot clair que tu m'a dit de le mettre à la place de l'ID c'est un peu defficile de le retrouver n'est ce pas ?
bon une autre question, tu dit qu'on utilise LoadResData("OCX_FTP","Costum")
pour un OCX et pour le  DLL?? qu'est ce qu'on met??
-----
Merci d'avence
0
Rejoignez-nous