Embryon d'un setup avec PureBasic
Publié : jeu. 17/déc./2015 18:09
Ce code permet de se créer un installateur customisé à votre sauce.
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.
Vous allez me dire mais comment créer un raccourci sur le bureau ? J'ai sorti ce code de mes archives. Pardon mais je n'ai pas le nom du créateur de ce code.
Il permet d'installer un raccourci sur le bureau. Par exemple avec Notepad.exe
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")