Question Windows.Form

Plus d'informations
il y a 17 ans 3 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?:blush:
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.

Plus d'informations
il y a 17 ans 3 mois #3728 par xyz
Réponse de xyz 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().

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 semaines 2 jours #38868 par alexseenbar
Réponse de alexseenbar sur le sujet Windows.Form
Hello, after watching a video about betting I got interested to try myself. I needed a site that is not too confusing for first time. I came across aviator and it seemed quite friendly to use. Knowing it’s used in Nigeria made it feel more real and trusted. The site provides different choices and even small recommendations how to not overdo it and keep things balanced, which is useful for beginners like me. It helped me relax and enjoy something different after daily routine.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.038 secondes
Propulsé par Kunena