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

Scripts/Batch Discussion :

Diverses questions sur les Textbox, les labels et les variables. [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut Diverses questions sur les Textbox, les labels et les variables.
    Bonjour à tous,

    J'ai plusieurs petites questions sûrement bêtes, mais je me suis lancé dans Powershell et pour m'occuper j'ai voulu essayé de faire une interface graphique qui permettrait, d'ouvrir ou de fermer un port choisi par l'utilisateur, dans le pare-feu.

    Dans un premier temps, je voulais savoir comment augmenter la taille de police des labels, afin de faire en sorte que ce soit des titres ? Je n'ai pas trouvé de réponses qui m'aident vraiment.
    Ensuite, je n'arrive pas à augmenter la hauteur de ma TextBox malgré le faite de changer les dimensions, je pense que c'est parce que ma fenêtre n'est pas adaptée, mais je préfère avoir votre avis.

    Enfin la question la plus technique

    J'ai réalisé plusieurs fonctions. Dans chaque fonction il y a des variables. Seulement j'aimerais rappelé une variable dans une autre fonction. Dans le cas ci-dessous, je souhaiterais récupérer le texte contenu dans la TextBox pour la réutiliser dans une variable d'une autre fonction (je ne sais pas si je suis assez clair):
    Code PowerShell : 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
    function SAISIE
    {
           # Création des labels de connexion et des textbox #
     
             $labelPort = New-Object Windows.Forms.Label
             $labelPort.Text = " ENTREZ LE PORT A OUVRIR OU FERMER "
             $labelPort.Size = New-Object System.Drawing.Size(400,20)
             $labelPort.
             $labelPort.Location = New-Object System.Drawing.Size(180,20) 
     
             $TextBoxPort = New-Object Windows.Forms.TextBox
             $TextBoxPort.Size = New-Object System.Drawing.Size(250,300)
             $TextBoxPort.Location = New-Object System.Drawing.Size(230,100)
     
           # On ajoute les textbox et les labels dans la fenêtre principale :
              $fen_principale.Controls.Add($labelPort) 
              $fen_principale.Controls.Add($TextBoxPort) 
     
    }
     
    function BOUTON_OUVRIR
    {
        ###########  Création d'un bouton OUVRIR ###########
     
            $ouvrir=New-Object System.Windows.Forms.Button
            $ouvrir.Text="OUVRIR LE PORT"
     
        #Taille du bouton OUVRIR PORT
            $ouvrir.Size = New-Object System.Drawing.Size(300,40)
     
        #Positionnement du bouton OUVRIR PORT
        #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
            $ouvrir.Location = New-Object System.Drawing.Size(200,200) 
     
        #EVENEMENT BOUTON OUVRIR, lorsqu'on clique dessus, la port doit s'ouvrir
            $ouvrir.Add_Click(
            {
                $saisie_port=$TextBoxPort.Text
            })
     
        # Ajout du bouton sur la fenêtre créée précédemment 
        $fen_principale.Controls.Add($ouvrir)
    }


    Si vous souhaitez avoir le code en entier :
    Code PowerShell : 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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    ############# FONCTIONS ##############
     
    function SAISIE
    {
           # Création des labels de connexion et des textbox #
     
             $labelPort = New-Object Windows.Forms.Label
             $labelPort.Text = " ENTREZ LE PORT A OUVRIR OU FERMER "
             $labelPort.Size = New-Object System.Drawing.Size(400,20)
             $labelPort.
             $labelPort.Location = New-Object System.Drawing.Size(180,20) 
     
             $TextBoxPort = New-Object Windows.Forms.TextBox
             $TextBoxPort.Size = New-Object System.Drawing.Size(250,300)
             $TextBoxPort.Location = New-Object System.Drawing.Size(230,100)
     
           # On ajoute les textbox et les labels dans la fenêtre principale :
              $fen_principale.Controls.Add($labelPort) 
              $fen_principale.Controls.Add($TextBoxPort) 
     
    }
     
    function BOUTON_OUVRIR
    {
        ###########  Création d'un bouton OUVRIR ###########
     
            $ouvrir=New-Object System.Windows.Forms.Button
            $ouvrir.Text="OUVRIR LE PORT"
     
        #Taille du bouton OUVRIR PORT
            $ouvrir.Size = New-Object System.Drawing.Size(300,40)
     
        #Positionnement du bouton OUVRIR PORT
        #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
            $ouvrir.Location = New-Object System.Drawing.Size(200,200) 
     
        #EVENEMENT BOUTON OUVRIR, lorsqu'on clique dessus, la port doit s'ouvrir
            $ouvrir.Add_Click(
            {
                  $saisie_port=$TextBoxPort.Text
            })
     
        # Ajout du bouton sur la fenêtre créée précédemment 
        $fen_principale.Controls.Add($ouvrir)
    }
     
    function BOUTON_FERMER
    {
        ###########  Création d'un bouton QUITTER ###########
     
            $fermer=New-Object System.Windows.Forms.Button
            $fermer.Text="FERMER LE PORT"
     
        #Taille du bouton QUITTER
            $fermer.Size = New-Object System.Drawing.Size(300,40)
     
        #Positionnement du bouton QUITTER
        #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
           $fermer.Location = New-Object System.Drawing.Size(200,250) 
     
        #EVENEMENT BOUTON QUITTER, lorsqu'on clique dessus, la fenêtre doit se fermer
            $fermer.Add_Click(
            {
                $fen_principale.Close()
            })
     
        # Ajout du bouton sur la fenêtre créée précédemment 
        $fen_principale.Controls.Add($fermer)
    }
     
    function BOUTON_QUITTER 
    {
        ###########  Création d'un bouton QUITTER ###########
     
            $quitter=New-Object System.Windows.Forms.Button
            $quitter.Text="QUITTER"
     
        #Taille du bouton QUITTER
            $quitter.Size = New-Object System.Drawing.Size(300,40)
     
     
        #Positionnement du bouton QUITTER
        #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
            $quitter.Location = New-Object System.Drawing.Size(200,320) 
     
        #EVENEMENT BOUTON QUITTER, lorsqu'on clique dessus, la fenêtre doit se fermer
            $quitter.Add_Click(
            {
                $fen_principale.Close()
            })
     
        # Ajout du bouton sur la fenêtre créée précédemment 
        $fen_principale.Controls.Add($quitter)
    }
     
     
    ########## DEBUT INTERFACE GRAPHIQUE ###########
     
    # Creation de la forme principale
    $fen_principale = New-Object Windows.Forms.Form 
     
    # On peut ensuite définir certaines propriétés de la form , il en a des centaines.  
    # Choix du titre 
    $fen_principale.Text = "OUVERTURE DE PORTS"
    # Choix de la taille , par défaut la taille (largeur, hauteur) est(300,300)   
    $fen_principale.Size = New-Object System.Drawing.Size(700,470) 
     
    SAISIE
    BOUTON_OUVRIR
    BOUTON_FERMER
    BOUTON_QUITTER
     
    # Affichage de la fenêtre principale
    $fen_principale.ShowDialog()


    Merci d'avance de vos réponses !

  2. #2
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    Pour la taille du texte, je ne saurais vous aider.

    Pour la deuxième partie, je ne suis pas sûr d'avoir entièrement bien compris. Vous avez votre fonction saisie qui récupère la variable d'une textbox et voulez que cette variable puisse être utilisé dans une autre fonction ?

    Si c'est ça, il suffit de mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $mavariableTextboxt
    Puis dans la deuxième fonction un Où on appelle la fonction saisie et on met la valeur retournée dans la variable $TestBox

    J'espére ne pas avoir été trop hors sujet

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu as un problème avec la porté des variables
    http://nacta.fr/?p=169
    http://ottomatt.pagesperso-orange.fr...Powershell.pdf

    habituellement on crée l'interface comme cela (dans le corps du script ce qui rend leurs portées Global) pour simplifier
    Code powershell : 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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    ########## INTERFACE GRAPHIQUE ###########
     
    ########### Creation de la forme principale ###########
    $fen_principale = New-Object Windows.Forms.Form 
     
    # On peut ensuite définir certaines propriétés de la form , il en a des centaines.  
    # Choix du titre 
    $fen_principale.Text = "OUVERTURE DE PORTS"
    # Choix de la taille , par défaut la taille (largeur, hauteur) est(300,300)   
    $fen_principale.Size = New-Object System.Drawing.Size(700,470) 
     
     
    ########### Création des labels de connexion et des textbox ###########
    $labelPort = New-Object Windows.Forms.Label
    $labelPort.Text = " ENTREZ LE PORT A OUVRIR OU FERMER "
    $labelPort.Size = New-Object System.Drawing.Size(400,20)
     
    $labelPort.Location = New-Object System.Drawing.Size(180,20) 
     
    $global:TextBoxPort = New-Object Windows.Forms.TextBox
    $TextBoxPort.Size = New-Object System.Drawing.Size(250,300)
    $TextBoxPort.Location = New-Object System.Drawing.Size(230,100)
     
     
    ###########  Création d'un bouton OUVRIR ###########
    $ouvrir=New-Object System.Windows.Forms.Button
    $ouvrir.Text="OUVRIR LE PORT"
     
    #Taille du bouton OUVRIR PORT
    $ouvrir.Size = New-Object System.Drawing.Size(300,40)
     
    #Positionnement du bouton OUVRIR PORT
    #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
    $ouvrir.Location = New-Object System.Drawing.Size(200,200) 
     
    #EVENEMENT BOUTON OUVRIR, lorsqu'on clique dessus, la port doit s'ouvrir
    $ouvrir.Add_Click(
    {
            $saisie_port = $TextBoxPort.Text
    })
     
     
    ###########  Création d'un bouton QUITTER ###########
    $fermer=New-Object System.Windows.Forms.Button
    $fermer.Text="FERMER LE PORT"
     
    #Taille du bouton QUITTER
    $fermer.Size = New-Object System.Drawing.Size(300,40)
     
    #Positionnement du bouton QUITTER
    #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
    $fermer.Location = New-Object System.Drawing.Size(200,250) 
     
    #EVENEMENT BOUTON QUITTER, lorsqu'on clique dessus, la fenêtre doit se fermer
    $fermer.Add_Click(
    {
        $fen_principale.Close()
    })
     
     
    ###########  Création d'un bouton QUITTER ###########
    $quitter=New-Object System.Windows.Forms.Button
    $quitter.Text="QUITTER"
     
    #Taille du bouton QUITTER
    $quitter.Size = New-Object System.Drawing.Size(300,40)
     
     
    #Positionnement du bouton QUITTER
    #Le point (0;0) correspond au coin supérieur gauche de la fenêtre.  
    $quitter.Location = New-Object System.Drawing.Size(200,320) 
     
    #EVENEMENT BOUTON QUITTER, lorsqu'on clique dessus, la fenêtre doit se fermer
    $quitter.Add_Click(
    {
        $fen_principale.Close()
    })
     
     
    # On ajoute les textbox et les labels dans la fenêtre principale :
    $fen_principale.Controls.Add($labelPort) 
    $fen_principale.Controls.Add($TextBoxPort) 
     
    # Ajout du bouton sur la fenêtre créée précédemment 
    $fen_principale.Controls.Add($ouvrir)
     
    # Ajout du bouton sur la fenêtre créée précédemment 
    $fen_principale.Controls.Add($fermer)
     
    # Ajout du bouton sur la fenêtre créée précédemment 
    $fen_principale.Controls.Add($quitter)
     
     
    # Affichage de la fenêtre principale
    $fen_principale.ShowDialog()



    Si tu veux jouer sur les portées tu doit déclarer ta textbox comme accessible à tout le script via la syntaxe global
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $global:TextBoxPort = New-Object Windows.Forms.TextBox



    Il y a une autre alternative si tu préfère.
    Dans ton code, $fen_principale est global et ta $TextBoxPort est ajoutée au Control de $fen_principale, tu peux donc le recherche :

    1) Tu le nomme pour le retrouver plus tard
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $TextBoxPort.Name = "TextBoxPort"

    2) Tu le trouve dans $ouvrir.Add_Click. Voici deux façons de faire
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ouvrir.Add_Click(
    {
        $saisie_port = ($fen_principale.Controls | Where-Object {$_.Name -eq "TextBoxPort"}).Text
        $saisie_port = $fen_principale.Controls.Find("TextBoxPort", $false).Text
    })

    Plus d'information : https://docs.microsoft.com/en-us/dot...tframework-4.8

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    J'en oubliais ton petit problème de taille

    Voici comment changer la police, taille et style d'un label
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $labelPort.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 15.75, [System.Drawing.FontStyle]::Bold)
    $labelPort.Size = New-Object System.Drawing.Size(500,25)
    $labelPort.Location = New-Object System.Drawing.Size(120,20)

    Pareil, joue sur la taille de la Font de ta Textbox :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $TextBoxPort.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 18)
    $TextBoxPort.Size = New-Object System.Drawing.Size(250,35)

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Hartion Voir le message
    J'ai réalisé plusieurs fonctions. Dans chaque fonction il y a des variables. Seulement j'aimerais rappelé une variable dans une autre fonction.
    Si c'est pour un accès en lecture passe la en paramètre, c'est verbeux mais évite à terme de fastidieuses séances de debug...

    Eric, je me permet une remarque :
    Citation Envoyé par ericlm128 Voir le message
    Si tu veux jouer sur les portées tu doit déclarer ta textbox comme accessible à tout le script via la syntaxe global
    Pour 'accessible à tout le script', de commencer avec la portée $script: est un bon début.

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Merci Laurent pour ta précision.
    J'avoue ne pas trop jouer avec toutes les portées de variable possible et ne les maitrises pas vraiment.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Par défaut
    Merci à tous pour vos réponses !

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    J'avoue ne pas trop jouer avec toutes les portées de variable possible
    Moi non plus, c'est pour cela que leur usage incite à la prudence.

    Pour une GUI, depuis la version 3 je crois, la porté script: est nécessaire dans un gestionnaire d'événement.

    Pour l'usage de la portée global dans Powershell, selon moi, c'est soit un pb dans la conception du code, soit une nécessité technique

    On peut également constater ici que ce sujet est loin d'être le plus simple dans Powershell. D'ou le KISS (où perso j’enlèverais le dernier S)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Diverses questions sur les régressions/fit
    Par elglantosimpatico dans le forum MATLAB
    Réponses: 0
    Dernier message: 05/08/2013, 03h07
  2. Diverse question sur les form, DOM, div & innerHTML
    Par terro dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2009, 14h07
  3. Diverses questions sur les popups
    Par Flow_75 dans le forum C++Builder
    Réponses: 1
    Dernier message: 24/03/2007, 13h37
  4. Diverses questions sur les fonctions de conversion
    Par Louis-Guillaume Morand dans le forum Access
    Réponses: 12
    Dernier message: 27/12/2006, 10h56
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59

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