Comme je ne connais pas les ingrédients de votre sauce, je ne met que le minimum.
L'utilisateur final pourra choisir le dossier d'installation et exécuter automatiquement l'application en fin d'installation.
A vous d'inclure le ou les fichiers à installer dans la data section de ce code.
Code : Tout sélectionner
EnableExplicit
Define.s TextFile, ExeFile
Define FF, *mem, length.q
ExeFile = SaveFileRequester("Installer sur ... ", "demo.exe", "Exe (*.exe)|*.exe", 0)
If ExeFile
FF = CreateFile(#PB_Any, ExeFile)
If FF
WriteData(FF, ?exe, ?exe_end - ?exe)
CloseFile(FF)
;WriteData(FF, ?help, ?help_end - ?help)
;CloseFile(FF)
RunProgram(ExeFile)
EndIf
EndIf
End
DataSection
exe:
IncludeBinary "demo.exe"
exe_end:
;help:
;IncludeBinary "help.hlp"
;help_end:
;etc ...
EndDataSection
Il permet d'installer un raccourci sur le bureau. Par exemple avec Notepad.exe
Code : Tout sélectionner
;Créer un raccourci application sur le bureau avec Visual Basic Script
listptr=0
result$=Space(270)
SHGetSpecialFolderLocation_(0,#CSIDL_DESKTOPDIRECTORY,@listptr)
SHGetPathFromIDList_(listptr,@result$)
Path$ = Trim(result$)
;Quel est le chemin du répertoire racine de l'utilisateur
;Le fichier VBS
HomeDirectory$ = GetHomeDirectory()
;Paramétre du raccourci
ShortCut$ = "Notepad.lnk" ;Nom du raccourci
Prog$ = "C:\WINDOWS\notepad.exe" ;Nom du programme associé
WorkDir$ = "C:\WINDOWS\" ;Dossier d'éxécution
;Si existant, supression de l'ancien fichier vbs de configuration.
If ReadFile(0, HomeDirectory$ + "\temp.vbs")
CloseFile(0)
DeleteFile(HomeDirectory$ + "\temp.vbs")
EndIf
;Si existant, suppression de l'ancien raccourci
If FileSize(Path$+"\"+ShortCut$)>0
DeleteFile(Path$+"\"+ShortCut$)
EndIf
If CreateFile(0, HomeDirectory$ + "\temp.vbs")
WriteStringN(0, "Set oWS = WScript.CreateObject("+Chr(34)+"WScript.Shell"+Chr(34)+")")
WriteStringN(0, "sLinkFile = "+Chr(34)+Path$+"\"+ShortCut$+Chr(34))
WriteStringN(0, "Set oLink = oWS.CreateShortcut(sLinkFile)")
WriteStringN(0, "oLink.TargetPath = "+Chr(34)+Prog$+Chr(34))
WriteStringN(0, "oLink.IconLocation = "+Chr(34)+Prog$+", 0"+Chr(34))
WriteStringN(0, "oLink.WindowStyle = "+Chr(34)+"3"+Chr(34)) ;#SW_SHOWNORMAL = 1 ,#SW_SHOWMINIMIZED = 2 ,#SW_SHOWMAXIMIZED = 3
WriteStringN(0, "oLink.WorkingDirectory = "+Chr(34)+WorkDir$+Chr(34))
WriteStringN(0, "oLink.Save")
CloseFile(0)
Else
MessageRequester("Error", "Error: can't write the file", 0)
EndIf
RunProgram("WScript.exe"," " + GetHomeDirectory() + "\temp.vbs","",#PB_Program_Wait|#PB_Program_Hide)
DeleteFile(GetHomeDirectory() + "\temp.vbs")