Entrainement
Module
Cette méthode décrit plusieurs méthodes permettant d’accepter une entrée utilisateur dans un script Windows PowerShell.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet exemple s’applique uniquement aux plateformes Windows.
Dans Windows PowerShell 3.0 et versions ultérieures, vous pouvez créer un formulaire avec un contrôle graphique de type calendrier qui permet aux utilisateurs de sélectionner un jour du mois.
Copiez le code suivant, puis collez-le dans Windows PowerShell ISE. Ensuite, enregistrez-le en tant que fichier de script PowerShell (.ps1
).
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object Windows.Forms.Form -Property @{
StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
Size = New-Object Drawing.Size 243, 230
Text = 'Select a Date'
Topmost = $true
}
$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
ShowTodayCircle = $false
MaxSelectionCount = 1
}
$form.Controls.Add($calendar)
$okButton = New-Object Windows.Forms.Button -Property @{
Location = New-Object Drawing.Point 38, 165
Size = New-Object Drawing.Size 75, 23
Text = 'OK'
DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)
$cancelButton = New-Object Windows.Forms.Button -Property @{
Location = New-Object Drawing.Point 113, 165
Size = New-Object Drawing.Size 75, 23
Text = 'Cancel'
DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
$result = $form.ShowDialog()
if ($result -eq [Windows.Forms.DialogResult]::OK) {
$date = $calendar.SelectionStart
Write-Host "Date selected: $($date.ToShortDateString())"
}
Le script commence par charger deux classes .NET Framework : System.Drawing et System.Windows.Forms. Vous démarrez ensuite une nouvelle instance de la classe .NET Framework Windows.Forms.Form. Cela fournit un formulaire ou une fenêtre vierge auquel vous pouvez commencer à ajouter des contrôles.
$form = New-Object Windows.Forms.Form -Property @{
StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
Size = New-Object Drawing.Size 243, 230
Text = 'Select a Date'
Topmost = $true
}
Cet exemple assigne des valeurs à quatre propriétés de cette classe à l’aide de la propriété Property et de la table de hachage.
StartPosition : Si vous n’ajoutez pas cette propriété, Windows sélectionne un emplacement lors de l’ouverture du formulaire. Si vous affectez à cette propriété la valeur CenterScreen, le formulaire s’affichera automatiquement au milieu de l’écran à chaque chargement.
Size : Il s'agit de la taille du formulaire en pixels. Le script précédent crée un formulaire de 243 pixels de largeur par 230 pixels de hauteur.
Text : Il s'agit du titre de la fenêtre.
Topmost : Affectez à cette propriété la valeur $true
pour forcer la fenêtre à s’ouvrir au-dessus des autres fenêtres et boîtes de dialogue.
Ensuite, créez et ajoutez un contrôle calendrier dans votre formulaire. Dans cet exemple, le jour actuel n’est ni mis en surbrillance ni encerclé. Les utilisateurs peuvent sélectionner un seul jour à la fois dans le calendrier.
$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
ShowTodayCircle = $false
MaxSelectionCount = 1
}
$form.Controls.Add($calendar)
Ensuite, créez un bouton OK dans votre formulaire. Spécifiez la taille et le comportement du bouton OK. Dans cet exemple, le bouton se trouve à 165 pixels du bord supérieur du formulaire et à 38 pixels du bord gauche. Le bouton mesure 23 pixels de haut et 75 pixels de long. Le script utilise des types Windows Forms prédéfinis pour déterminer le comportement du bouton.
$okButton = New-Object Windows.Forms.Button -Property @{
Location = New-Object Drawing.Point 38, 165
Size = New-Object Drawing.Size 75, 23
Text = 'OK'
DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)
De la même façon, créez un bouton Annuler. Le bouton Cancel se trouve à 165 pixels du bord supérieur de la fenêtre, mais à 113 pixels du bord gauche.
$cancelButton = New-Object Windows.Forms.Button -Property @{
Location = New-Object Drawing.Point 113, 165
Size = New-Object Drawing.Size 75, 23
Text = 'Cancel'
DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)
Ajoutez la ligne de code suivante pour afficher le formulaire dans Windows.
$result = $form.ShowDialog()
Enfin, le code à l’intérieur du bloc if
indique à Windows comment traiter le formulaire quand un utilisateur sélectionne un jour dans le calendrier, puis clique sur le bouton OK ou appuie sur la touche Entrée. Windows PowerShell affiche la date sélectionnée aux utilisateurs.
if ($result -eq [Windows.Forms.DialogResult]::OK) {
$date = $calendar.SelectionStart
Write-Host "Date selected: $($date.ToShortDateString())"
}
Commentaires sur PowerShell
PowerShell est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Entrainement
Module
Cette méthode décrit plusieurs méthodes permettant d’accepter une entrée utilisateur dans un script Windows PowerShell.
Documentation
Sélection d’éléments dans une zone de liste - PowerShell
Cet article explique comment créer un contrôle de zone de liste à l’aide des fonctionnalités de création de formulaires .NET Framework dans Windows PowerShell.
Création d’une zone d’entrée personnalisée - PowerShell
Cet article explique comment créer une zone d’entrée personnalisée à l’aide des fonctionnalités de création de formulaires .NET Framework dans Windows PowerShell.
Zones de liste à sélection multiple - PowerShell
Cet article explique comment créer un contrôle de zone de liste multisélection à l’aide des fonctionnalités de création de formulaires .NET Framework dans Windows PowerShell.
Montrez comment créer et utiliser des formulaires GUI à l’aide de PowerShell. Montre comment créer des formulaires, ajouter des étiquettes, des zones de texte, des panneaux, des zones de liste modifiable, des listes de sélection, etc. Montre comment remplir tous les champs, y compris les listes de sélections et les listes de zone de liste modifiable et utiliser des propriétés. Montre comment remplir et utiliser des objets de tableau. Utilise des commandes Azure pour remplir les données de liste. Montre comm