IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

aide Inputbox pour saisie et boucle


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut aide Inputbox pour saisie et boucle
    Bonjour,

    j'ai créé un script à l'aide de recherche sur internet pour que celui-ci va chercher des infos sur un pc distant.
    Mon résultat est concluant.
    Par contre j'aimerai que lorsque je me trompe dans le champ renseignent j'ai une boite de dialogue qui apparaisse pour dire " mauvais format" et si l'on clique sur ok que cela revienne sur la boite a renseigner.

    Mercu d'avance pour votre aide.

    je vous mets mon vbs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    on error resume next
    'Saisie numéro du PC à vérifier
    sComputer = InputBox ("Nom CHU du poste sur 10 caracteres ?","Numéro du poste à entrer")
     
     
    'Déclaration des librairies
    sLocal = LocalDateTime(sComputer)
    sLastBoot = LastBootTime(sComputer)
    Set net = Wscript.CreateObject("WScript.Network")
    Set colSessions = objWMI.ExecQuery("Select * From Win32_LogonSession Where LogonType = 2 OR LogonType = 10")
     
     
    MsgBox "Démarré le " & GetUSTime(sLastBoot) &  vbCr  &_
    "Allumé depuis " & UpTime(sComputer) & vbCr &_
    "Date du contrôle le " & GetUSTime(sLocal) & vbCr &_
    "Effectué par l'utilisateur : " & net.username & vbCr &_
    "Numéro du PC controlé : " & sComputer
     
     
     
    Function GetUSTime(sDT)
    sDay = Day(sDT)
    sMonth = Month(sDT)
    sYear = Year(sDT)
    sTime = TimeValue(sDT)
    GetUSTime = sDay & "/" & sMonth & "/" & sYear & " à " & sTime
    End Function
     
    Function UpTime(sComputer)
    Set oWMI = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
    Set colOS = oWMI.ExecQuery("Select * from Win32_OperatingSystem")
    For Each oOS in colOS
    sLastBoot = oOS.LastBootUpTime
    sSec = DateDiff("s",UTCtoStandard(sLastBoot), Now)
    Next
    sMin = sSec\60
    sSec = sSec Mod 60
    sHour = sMin\60
    sMin = sMin Mod 60
    sDay = sHour\24
    UpTime= "" & sDay & "" & " Jour(s), " & sHour Mod 24 &_ 
    " Heure(s), " & sMin &" Minute(s), " & sSec & " Secondes"
    End Function
     
    Function LastBootTime(sComputer)
    Set oWMI = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
    Set colOS = oWMI.ExecQuery("Select * from Win32_OperatingSystem")
    For Each oOS in colOS
    sLastBoot = oOS.LastBootUpTime
    Next
    LastBootTime = UTCtoStandard(sLastBoot)
    End Function
     
    Function LocalDateTime(sComputer)
    Set oWMI = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
    Set colOS = oWMI.ExecQuery("Select * from Win32_OperatingSystem")
    For Each oOS in colOS
    sLocalDT = oOS.LocalDateTime
    Next
    LocalDateTime = UTCtoStandard(sLocalDT)
    End Function
     
    Function UTCtoStandard(CreationDate)
    UTCtoStandard = CDate(Mid(CreationDate, 5, 2) & "/" & _ 
    Mid(CreationDate, 7, 2) & "/" & Left(CreationDate, 4) _ 
    & " " & Mid (CreationDate, 9, 2) & ":" & _ 
    Mid(CreationDate, 11, 2) & ":" & Mid(CreationDate, _ 
    13, 2))
    End Function
     
    Function Sesssion
    strSessionStart = objSession.StartTime
    End Function
     
    Function LocalTime(dtmInstallDate)
    	 LocalTime = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
    	 Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
    	 & " " & Mid (dtmInstallDate, 9, 2) & ":" & _
    	 Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
    	 13, 2))
    End Function

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Inspirez-vous de ce vbscript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Option Explicit
    Dim Titre,ws,N,Question 
    Titre = "Arrêt automatique de l'ordinateur"
    Set ws = CreateObject("wscript.Shell")
    Do
        Call Choisir()
        Call Poser_question()
    Loop
    '*****************************************************************
    Sub Choisir()
        Do 
            N  = Trim(InputBox("Taper le nombre de secondes avant shutdown : ",Titre,"60")) 
            If Not IsNumeric(N)  Then
                ws.Popup "Vous devez taper un Nombre !","3",Titre,0+48
            End if
        Loop Until IsNumeric(N) 
        MsgBox "Vous avez choisi " & N & " seconde(s) avant le shutdown de votre PC !",64,Titre
        Run_Shutdown(N)    
    End Sub
    '*****************************************************************
    Sub Poser_question()
        Question = MsgBox ("Vouliez-vous annuler le shutdown de votre PC ?",VBYesNO+VbQuestion,Titre)
        If Question = VbYes then
            Call Annuler_Shutdown()
            Wscript.Quit
        else
            Wscript.Quit    
        end if
    End Sub
    '*****************************************************************
    Sub Run_Shutdown(N)
        Dim Command,Execution
        Command = "Cmd /c Shutdown -s -t "& N &" -c "& DblQuote("Sauvegarder votre travail car votre PC va s'arrêter dans "& N &" seconde(s)")
        Execution = ws.run(Command,0,True)
    End sub
    '*****************************************************************
    Sub Annuler_Shutdown()
        Dim Command,Execution
        Command = "Cmd /c Shutdown -a"
        Execution = ws.run(Command,0,True)
    End Sub
    '*****************************************************************
    'Fonction pour ajouter des guillemets dans une variable
    Function DblQuote(Str)
        DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '*****************************************************************
    Un autre exemple de InputBox dans une boucle Do .....Loop demandant d'entrer un entier compris entre 1 et 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Explicit
    Dim Titre, vNum, sNum, nNum
    Titre = "Choisir un nombre compris entre 1 et 10"
    Do
       vNum = InputBox("S'il vous plaît entrer un entier entre 1 et 10",Titre,"")
       'On teste si l'utilisateur à cliqué sur le bouton annuler, on sort de la boucle Do..Loop
       If IsEmpty(vNum) Then
          MsgBox "Vous avez choisi de quitter le script",VbExclamation,Titre
          Exit Do
       Else
       'On teste si le champ de saisie est vide
          sNum = Trim(vNum)
          If "" = sNum Then
             MsgBox "La chaîne est vide !",VbExclamation,Titre
          Else
             If IsNumeric(sNum) Then
                nNum = CDbl(sNum)
                If nNum <> Fix(nNum) Then
                   MsgBox "Ce n'est pas un entier !" & vbcrLF & "Saisie non valide !",VbExclamation,Titre
                Else
                'Vérifier si l'utilisateur à entré un nombre compris entre 1 et 10
                   If nNum < 1 Or nNum > 10 Then
                      MsgBox "Le nombre saisi n'est pas compris entre 1 et 10",VbExclamation,Titre
                   Else
                      MsgBox nNum, " est valide !",VbInformation,Titre
                      Exit Do
                   End If
                End If
             Else
                MsgBox "Ce n'est pas un nombre !",VbCritical,Titre
             End If
          End If
       End If
    Loop

Discussions similaires

  1. [MySQL] Besoin d'aide pour faire une boucle
    Par plex dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/04/2008, 13h47
  2. Aide pour créer une boucle
    Par laroche1 dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/12/2007, 15h51
  3. Réponses: 4
    Dernier message: 18/11/2006, 22h58
  4. Aide pour syntaxe de boucle "FOR"
    Par tribaleur dans le forum ASP
    Réponses: 2
    Dernier message: 31/05/2006, 14h03
  5. [VBA-E]besoin d'aide pour faire une boucle
    Par mikazounette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2006, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo