PureBasic

Forums PureBasic
Nous sommes le Lun 23/Sep/2019 0:04

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Utilitaire runprogram
MessagePosté: Ven 04/Aoû/2017 17:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 16/Oct/2015 18:22
Messages: 309
Localisation: France
Bonjour a tous,
Voici un petit utilitaire que je me suis fait pour mes besoins personnels.
Donner un nom parlant au fichier compilé.
A l'exécution de l'exécutable, un fichier exécutable.ini est créé.
Documenter au minimum le champ Program de ce fichier.
Je vous laisse juge de son utilité.
Merci de vos retours.
cage

Exemple de fichier .ini
Code:
[RUNPROGRAM]
;
;start ["<Title>"] [/d <Path>] [/i] [{/min | /max}] [/wait]
;      [{/separate | /Shared}]
;      [{/low | /normal | /high | /realtime | /abovenormal | belownormal}]
;      [/affinity <HexAffinity>]
;      [/b {<Command> | <Program>} [<Parameters>]]
;
;Program    = Full path of the executable
Program     = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
;
;Parameters = Optional program parameter(s)
Parameters  = --fullscreen "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"
;
;Options    = Optional, [/d <Path>] [/i] [{/min | /max}] [{/separate | /Shared}] [/wait]
Options     =
;
;Priority   = Optional, [{/low | /normal | /high | /realtime | /abovenormal | /belownormal}]
Priority    = /low
;
;Affinity   = Optional, [/affinity <HexAffinity>]
Affinity    = /affinity 2
Voici le programme
Code:
;
;***********************************************
;Titre      : runprogram  (x86/x64)
;Auteur     : (C) 2017 CAGE
;Date       : 2017/08/04
;Version PB : PureBasic 5.60 (Windows - x86)
;Version PB : PureBasic 5.60 (Windows - x64)
;Compiler Options
;Compiler Options : Enable moderm theme support (for Windows X and above)
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies:
;***********************************************

; start ["<Title>"]
;       [/d <Path>]
;       [/i]
;       [{/min | /max}];
;       [{/separate | /Shared}]
;       [{/low | /normal | /high | /realtime | /abovenormal | belownormal}]
;       [/affinity <HexAffinity>]
;       [/wait] [/b {<Command> | <Program>} [<Parameters>]]

EnableExplicit ; all the variables must be declared

OnErrorGoto(?ErrorHandler)

Define PROGRAM.s, PARAMETERS.s, FOLDER.s

Define START = #False
Define OPTIONS.s, PRIORITY.s, AFFINITY.s

Define OUTFILE

Define MYPATH.s = GetPathPart(ProgramFilename())
Define CONFIG.s = GetFilePart(ProgramFilename(),#PB_FileSystem_NoExtension) + ".ini"

CONFIG = MYPATH + CONFIG

If OpenPreferences(CONFIG)
  PreferenceGroup("RUNPROGRAM")
    PROGRAM    = Trim(ReadPreferenceString("Program"    , #Null$))
    PARAMETERS = Trim(ReadPreferenceString("Parameters" , #Null$))
    OPTIONS    = Trim(ReadPreferenceString("Options"    , #Null$))
    PRIORITY   = Trim(ReadPreferenceString("Priority"   , #Null$))
    AFFINITY   = Trim(ReadPreferenceString("Affinity"   , #Null$))
  ClosePreferences()
Else
  OUTFILE = OpenFile(#PB_Any, CONFIG)
  If OUTFILE
    WriteStringN(OUTFILE, "[RUNPROGRAM]")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";start ["+Chr(34)+"<Title>"+Chr(34)+"] [/d <Path>] [/i] [{/min | /max}] [/wait]")
    WriteStringN(OUTFILE, ";      [{/separate | /Shared}]")
    WriteStringN(OUTFILE, ";      [{/low | /normal | /high | /realtime | /abovenormal | belownormal}]")
    WriteStringN(OUTFILE, ";      [/affinity <HexAffinity>]")
    WriteStringN(OUTFILE, ";      [/b {<Command> | <Program>} [<Parameters>]]")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";Program    = Full path of the executable")
    WriteStringN(OUTFILE, "Program     = ")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";Parameters = Optional program parameter(s)")
    WriteStringN(OUTFILE, "Parameters  = ")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";Options    = Optional, [/d <Path>] [/i] [{/min | /max}] [{/separate | /Shared}] [/wait]")
    WriteStringN(OUTFILE, "Options     = ")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";Priority   = Optional, [{/low | /normal | /high | /realtime | /abovenormal | /belownormal}]")
    WriteStringN(OUTFILE, "Priority    = ")
    WriteStringN(OUTFILE, ";")
    WriteStringN(OUTFILE, ";Affinity   = Optional, [/affinity <HexAffinity>]")
    WriteStringN(OUTFILE, "Affinity    = ")
  EndIf
  End
EndIf

If PROGRAM <> #Null$
  FOLDER  = GetPathPart(PROGRAM) : If FOLDER  = #Null$ : End : EndIf
  PROGRAM = GetFilePart(PROGRAM) : If PROGRAM = #Null$ : End : EndIf
Else
  End
EndIf

PRIORITY = ReplaceString(PRIORITY,Chr(34),#Null$)
AFFINITY = ReplaceString(AFFINITY,Chr(34),#Null$)

If OPTIONS <> #Null$
  START = #True
EndIf

Select LCase(PRIORITY)
  Case "/low", "/normal", "/high", "/realtime", "/abovenormal", "/belownormal"
    START = #True
  Default
    PRIORITY = #Null$
EndSelect

Select LCase(Left(AFFINITY,10))
  Case "/affinity "
    START = #True
  Default
    AFFINITY = #Null$
EndSelect

If START
  Define CMDLINE.s = OPTIONS+" "+PRIORITY+" "+AFFINITY+" "+PROGRAM+" "+PARAMETERS
  Debug CMDLINE
  RunProgram("cmd.exe", "/c start "+CMDLINE, FOLDER)
;;RunProgram("cmd.exe", "/c start "+OPTIONS+" "+PRIORITY+" "+AFFINITY+" "+PROGRAM+" "+PARAMETERS, FOLDER)
;;RunProgram("cmd.exe", "/c start "+OPTIONS+" "+PRIORITY+" "+AFFINITY+" "+PROGRAM+" "+PARAMETERS, FOLDER, #PB_Program_Hide)
Else
  RunProgram(PROGRAM, PARAMETERS, FOLDER)
EndIf

ErrorHandler:

End

_________________
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 5.70 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye