begin process at 2008 07 19 08:51:57
1 212 721 membres
60 nouveaux aujourd'hui
14 165 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UN .EXE DANS UN .EXE ...


Information sur la source

Catégorie :Exécution Niveau : Débutant Date de création : 10/05/2003 Date de mise à jour : 10/05/2003 16:16:28 Vu : 5 371

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


Description

 

Source

  • '
  • ' Un .EXE dans un .EXE ...
  • ' =================
  • '
  • ' - Créez un fichier source de ressources (.RC)
  • ' (Voir l'aide en ligne de VB à propos des fichiers ressources...)
  • '
  • ' Exemple -> le fichier "ResExe.rc" contenant la ligne suivante:
  • ' ("MonFichier.exe" est le fichier qui sera intégré dans l'executable VB)
  • '
  • ' fichexe EXE MonFichier.exe
  • '
  • ' - Créez le fichier de ressources (.RES) "ResExe.res" en compilant "ResExe.rc"
  • ' (Il faut utiliser un compilateur de ressources...)
  • '
  • ' - Créez un projet VB et insérez "ResExe.res" dans ce projet
  • ' La ressource "MonFichier.exe" est maintenant accessible, exemple:
  • ' (le module contenant les APIs n'est pas présent ici)
  • '
  • ' -------------------------------------------------------------
  • '
  • Option Explicit
  • Const FTAILLE = 351744 '//Taille du fichier "MonFichier.exe" (voir ResExe.rc)
  • Const FDESTINATION = "\MonExe.exe" '//Nom du fichier .EXE de destination
  • Private Sub Form_Load()
  • Dim Data() As Byte
  • Dim szPath As String * MAX_PATH
  • Dim sa As SECURITY_ATTRIBUTES
  • Dim hFic As Long, taille As Long, octets As Long
  • With sa
  • .nLength = Len(sa)
  • .lpSecurityDescriptor = 0
  • .bInheritHandle = True
  • End With
  • Data() = LoadResData("fichexe", "EXE") '(voir ResExe.rc)
  • taille = MAX_PATH
  • szPath = String(MAX_PATH, 0)
  • Call GetSystemDirectory(szPath, taille)
  • call lstrcat(szPath, FDESTINATION)
  • hFic = CreateFile(szPath, _
  • GENERIC_WRITE, _
  • 0&, _
  • sa, _
  • CREATE_ALWAYS, _
  • FILE_ATTRIBUTE_NORMAL, _
  • 0&)
  • Call WriteFile(hFic, Data(0), FTAILLE, octets, 0&)
  • Call CloseHandle(hFic)
  • End Sub
  • '
  • ' -------------------------------------------------------------
  • '
  • ' A l'execution, ce programme copiera la ressource "MonFichier.exe"
  • ' dans le répertoire systeme de windows sous le nom "MonExe.exe"
  • '
'
' Un .EXE dans un .EXE ...
' =================
'
' - Créez un fichier source de ressources (.RC)
'   (Voir l'aide en ligne de VB à propos des fichiers ressources...)
'
'     Exemple -> le fichier "ResExe.rc" contenant la ligne suivante:
'     ("MonFichier.exe" est le fichier qui sera intégré dans l'executable VB)
'
'     fichexe  EXE  MonFichier.exe
'
' - Créez le fichier de ressources (.RES) "ResExe.res" en compilant "ResExe.rc"
'   (Il faut utiliser un compilateur de ressources...)
'
' - Créez un projet VB et insérez "ResExe.res" dans ce projet
'   La ressource "MonFichier.exe" est maintenant accessible, exemple:
'   (le module contenant les APIs n'est pas présent ici)
'
' -------------------------------------------------------------
'
Option Explicit

Const FTAILLE = 351744   '//Taille du fichier "MonFichier.exe" (voir ResExe.rc) 
Const FDESTINATION = "\MonExe.exe"  '//Nom du fichier .EXE de destination

Private Sub Form_Load()
  Dim Data() As Byte
  Dim szPath As String * MAX_PATH
  Dim sa As SECURITY_ATTRIBUTES
  Dim hFic As Long, taille As Long, octets As Long
  
  With sa
    .nLength = Len(sa)
    .lpSecurityDescriptor = 0
    .bInheritHandle = True
  End With
  
  Data() = LoadResData("fichexe", "EXE")   '(voir ResExe.rc) 
  
  taille = MAX_PATH
  szPath = String(MAX_PATH, 0)
  Call GetSystemDirectory(szPath, taille)
  call lstrcat(szPath, FDESTINATION)
  
  hFic = CreateFile(szPath, _
                    GENERIC_WRITE, _
                    0&, _
                    sa, _
                    CREATE_ALWAYS, _
                    FILE_ATTRIBUTE_NORMAL, _
                    0&)
  
  Call WriteFile(hFic, Data(0), FTAILLE, octets, 0&)
  Call CloseHandle(hFic) 
End Sub  
' 
' -------------------------------------------------------------
'
' A l'execution, ce programme copiera la ressource "MonFichier.exe" 
' dans le répertoire systeme de windows sous le nom "MonExe.exe" 
'
  • signaler à un administrateur
    Commentaire de sub-zero le 10/05/2003 18:56:05

    vi tu peux faire plus simple et sans avoir a connnaitre la taille de l'exe

    Public Sub creat(nom_fic As String, ress As Integer)

    'cree un fichier à partir d'ID de ressources binaires

    Dim tab_ani() As Byte
    If Dir(nom_fic) = "" Then
    Open nom_fic For Binary Access Write As #1
    tab_ani = LoadResData(ress, "CUSTOM")
    ReDim Preserve tab_ani(UBound(tab_ani))
    Put #1, , tab_ani
    Close #1
    End If
    End Sub

  • signaler à un administrateur
    Commentaire de BlackGoddess le 14/05/2003 22:05:05

    c pas la taille du fichier, c la taille du nom de fichier lol

  • signaler à un administrateur
    Commentaire de sub-zero le 15/05/2003 01:12:29

    Const FTAILLE = 351744  et ca c koi....

  • signaler à un administrateur
    Commentaire de logedu le 15/05/2003 14:10:03

    Y a-t-il un moyen pour exécuter directement la ressource 'mon fichier.exe', sans le copier au prélable dans le répertoire système ?

  • signaler à un administrateur
    Commentaire de BlackGoddess le 15/05/2003 23:45:01

    ah, oui pardon j'avais pas vu :$

  • signaler à un administrateur
    Commentaire de begiladss le 01/03/2007 17:20:19

    Comment créer un éxécutable ou un fichier .exe?

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS