PureBasic
https://www.purebasic.fr/french/

Pause avec Timeout
https://www.purebasic.fr/french/viewtopic.php?f=1&t=17616
Page 1 sur 1

Auteur:  cage [ Jeu 14/Mar/2019 17:31 ]
Sujet du message:  Pause avec Timeout

Bonjour a tous,

Une petite application console a utiliser dans des fichiers batch (*.bat, *.cmd)

Syntaxe: pausewait <"Votre message"> [<Secondes>]

Exemple: pausewait "Veuillez patienter" 10

Les exécutables et les sources sont disponible ici

Code:
;************************************************************************
;Titre      : pausewait.pb
;Auteur     : (C) 2019 CAGE
;Date       : 2019/03/14
;Version PB : PureBasic 5.70 LTS (Windows - x86)
;Version PB : PureBasic 5.70 LTS (Windows - x64)
;Compiler Options
;Compiler Options : Executable format: Console
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies: aucunes
;
;************************************************************************
;

EnableExplicit

OnErrorGoto(?ErrorHandler)

Define message$, myparam$

Define p, p$, seconds=0

Global rcode=#False

Procedure Help()
  If OpenConsole()
    PrintN(#Null$)
    PrintN("Syntaxe: pausewait <"+Chr(34)+"Votre message"+Chr(34)+"> [<Secondes>]")
    PrintN(#Null$)
    CloseConsole()
  EndIf
  rcode=#False
  End rcode
EndProcedure

Define count = CountProgramParameters() : Debug "count=" + count

If count=0 Or count>2
  Help()
  End #False
EndIf

NewMap myparam$()

If count
  For p = 0 To count-1
    p$ = Str(p)
    myparam$(p$) = ProgramParameter(p) : Debug myparam$(p$)
    Select myparam$(p$)
      Case "/help", "/?"
        Help()
        End #False
    EndSelect
  Next
  Select count
    Case 1 : message$ = myparam$("0")
    Case 2 : message$ = myparam$("0")
             seconds  = Val(myparam$("1"))
  EndSelect
  If OpenConsole()
    PrintN(#Null$)
    Select count
      Case 2
        For count = seconds To 1 Step -1
          Print(message$+" "+count+"s"+Space(20)+#CR$)
          Define key$ = Inkey()
          If key$ <> ""
            Break
          EndIf
          Delay(1000)
        Next
      Case 1
        Print(message$+Space(20)+#CR$)
        Repeat
          Define key$ = Inkey()
          If key$ <> ""
            Break
          EndIf
          Delay(50)
        ForEver
    EndSelect
    Print(Space(Len(message$)+20)+#CR$)
    Print("TerminĂ©."+#CR$)
    PrintN(#Null$)
    CloseConsole()
    rcode=#True
  EndIf
  rcode=#True
Else
  Help()
  End #False
EndIf

ErrorHandler:

End rcode
CAGE

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/