Question
Windows.Form
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 2 mois #3723
par michault
Windows.Form a été créé par michault
Bonjour,
j'ai un petit soucis. J'essaye de créer ma première fenêtre pour afficher la liste des services sur un PC.
Je ne sais pas comment lier ma commande get-wmiObject à ma variable $liste.
Quelqu'un peu-t-il me donner un petit coup de pouce?
Merci
PS: la mise en page est pas finalisée mais ça c'est du dessin.
[code:1]#ShowServicesForms.ps1
# Paramètres: $who : Quels PC exemple PCOPR12
# $service : service
Param($who,$service)
#Création des composants
$bouton_quitter = New-object System.Windows.Forms.Button
$bouton_quitter.Location = New-Object System.Drawing.Point(444, 270)
$bouton_quitter.Size = New-Object System.Drawing.Size(99, 36)
$bouton_quitter.Text = 'Quitter'
$liste = New-Object System.Windows.Forms.ListView
$liste.Location = New-Object System.Drawing.Point(10, 87)
$liste.Size = New-Object System.Drawing.Size(310, 219)
$label = New-Object System.Windows.Forms.Label
$label.Font = New-object System.Drawing.Font('Calibri', 18, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::«»Point,0)
$label.Location = New-Object System.Drawing.Point(10, 21)
$label.Size = New-Object System.Drawing.Size(360, 80)
$label.Text = 'Listes des services ' + $service + ' sur ' + $who
Get-WmiObject -Class Win32_Service -ComputerName $who | where {$_.Displayname -like \"$service\"}
$form = new-object windows.forms.form
$form.size = new-object system.drawing.size(580,360)
#$form.icon ='C:\WDSC\samples\vidcust\rt_win32\HORROR.ICO'
$form.text ='SERVICES'
$form.Controls.add($liste)
$form.Controls.add($label)
$form.Controls.add($bouton_quitter)
$bouton_quitter.add_Click({
$form.close()
})
$form.showdialog()[/code:1]
j'ai un petit soucis. J'essaye de créer ma première fenêtre pour afficher la liste des services sur un PC.
Je ne sais pas comment lier ma commande get-wmiObject à ma variable $liste.
Quelqu'un peu-t-il me donner un petit coup de pouce?
Merci
PS: la mise en page est pas finalisée mais ça c'est du dessin.
[code:1]#ShowServicesForms.ps1
# Paramètres: $who : Quels PC exemple PCOPR12
# $service : service
Param($who,$service)
#Création des composants
$bouton_quitter = New-object System.Windows.Forms.Button
$bouton_quitter.Location = New-Object System.Drawing.Point(444, 270)
$bouton_quitter.Size = New-Object System.Drawing.Size(99, 36)
$bouton_quitter.Text = 'Quitter'
$liste = New-Object System.Windows.Forms.ListView
$liste.Location = New-Object System.Drawing.Point(10, 87)
$liste.Size = New-Object System.Drawing.Size(310, 219)
$label = New-Object System.Windows.Forms.Label
$label.Font = New-object System.Drawing.Font('Calibri', 18, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::«»Point,0)
$label.Location = New-Object System.Drawing.Point(10, 21)
$label.Size = New-Object System.Drawing.Size(360, 80)
$label.Text = 'Listes des services ' + $service + ' sur ' + $who
Get-WmiObject -Class Win32_Service -ComputerName $who | where {$_.Displayname -like \"$service\"}
$form = new-object windows.forms.form
$form.size = new-object system.drawing.size(580,360)
#$form.icon ='C:\WDSC\samples\vidcust\rt_win32\HORROR.ICO'
$form.text ='SERVICES'
$form.Controls.add($liste)
$form.Controls.add($label)
$form.Controls.add($bouton_quitter)
$bouton_quitter.add_Click({
$form.close()
})
$form.showdialog()[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 2 mois #3728
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Windows.Form
Salut,
tu peux construire un tableau de string dans la méthode load de la Form :
[code:1]
...
$bouton_quitter.add_Click({
$form.close()
})
# Au démarrage de la form
$Form.Add_Load({
[String[]]$private:«»ServicesName=Get-WmiObject -Class Win32_Service -ComputerName $who | where {$_.Displayname -like \"$service\"}|% {$_.Displayname}
$Liste.Items.Addrange($private:«»ServicesName)
})
$form.showdialog()
$form.Dispose()
[/code:1]
Le composant Listview ne supporte pas le databinding qui simplifie l'association entre un composant et les données qu'il doit afficher, tu peux dans ce cas utiliser une grille possédant une seule colonne :
voir : msdn.microsoft.com/fr-fr/library/fbk67b6z(VS.80).aspx
L'inconvénient ici est que tu dois rechercher les services puis créer un tableau de string pour l'affichage et enfin rechercher à nouveau le service sur lequel tu souhaites intervenir.
Ici cela peut convenir mais dans d'autres cas ce ne sera suffisant. Tu peux aussi placer le tableau en portée script.
Et ne pas oublier de supprimer les ressources par un appel à Dispose().
tu peux construire un tableau de string dans la méthode load de la Form :
[code:1]
...
$bouton_quitter.add_Click({
$form.close()
})
# Au démarrage de la form
$Form.Add_Load({
[String[]]$private:«»ServicesName=Get-WmiObject -Class Win32_Service -ComputerName $who | where {$_.Displayname -like \"$service\"}|% {$_.Displayname}
$Liste.Items.Addrange($private:«»ServicesName)
})
$form.showdialog()
$form.Dispose()
[/code:1]
Le composant Listview ne supporte pas le databinding qui simplifie l'association entre un composant et les données qu'il doit afficher, tu peux dans ce cas utiliser une grille possédant une seule colonne :
voir : msdn.microsoft.com/fr-fr/library/fbk67b6z(VS.80).aspx
L'inconvénient ici est que tu dois rechercher les services puis créer un tableau de string pour l'affichage et enfin rechercher à nouveau le service sur lequel tu souhaites intervenir.
Ici cela peut convenir mais dans d'autres cas ce ne sera suffisant. Tu peux aussi placer le tableau en portée script.
Et ne pas oublier de supprimer les ressources par un appel à Dispose().
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.076 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Windows.Form