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 883

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" 
'

Commentaires et avis

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



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.