Embryon d'un setup avec PureBasic

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Embryon d'un setup avec PureBasic

Message par falsam »

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.

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

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")
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Embryon d'un setup avec PureBasic

Message par falsam »

Spock a écrit :Merci Flype en 2006 pour le pondeur de'exe
Parce qu'il utilise un WriteData(id, *BinStart, *BinEnd - *BinStart) il faut le remercier ? :mrgreen:

On doit pouvoir en trouver quelques uns qui utilisent cette fonctionnalité.

PS: Rien à voir avec ton intervention sur ce post. En relisant ce post que tu cites je remarques que tu étais déja un emmerdeur en 2006. Mais comme l'a dit Ollivier .....
Ollivier a écrit :Dobro, c'est un peu comme le bambou asiatique:
plus tu le coupes, plus il pousse... Tu crois l'avoir éradiqué au fond de ton jardin contre la clôture, alors qu'il est en train de repousser de plus belle en ayant perforé le goudron du trottoir derrière la clôture!!!
si jamais tu le prends mal ça va ch***^^
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Embryon d'un setup avec PureBasic

Message par Kwai chang caine »

Pffff !!! DOBRO..... c'était le AVANT :roll: :mrgreen:

Image
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre