Question Problème d'affichage de variables avec une windows form

Plus d'informations
il y a 10 mois 2 semaines #33142 par KD
Bonjour, j'aimerai afficher les variables sur ma windows form dans la list box. Mais rien ne s'affiche. Je travaille sur visual studio code et il m'indique que les variables qui contiennent les commandes sont assignées mais non utilisées. Malgré cela je ne trouve pas l'origine du problème. Auriez vous une solution ?
Bonne journée
Code :
Function Form {
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$Menu = New-Object Windows.Forms.Form
$Menu.FormBorderStyle = "FixedDialog"
$Menu.text = "FormApplication"
$Menu.Size = New-Object Drawing.Point (1000,700)
$Menu.StartPosition = 'CenterScreen'
$Menu.ControlBox = $false

$ListBox = New-Object System.Windows.Forms.ListBox
$ListBox.Location = New-Object System.Drawing.Point (25,150)
$ListBox.Size = New-Object System.Drawing.Size (631,0)
$ListBox.Height = 495
[void] $ListBox.Items.Add("$a1")
[void] $ListBox.Items.Add("$a2")
[void] $ListBox.Items.Add("$a3")
[void] $ListBox.Items.Add("$a4")
[void] $ListBox.Items.Add("$a5")
[void] $ListBox.Items.Add("$a6")

$Menu.Controls.Add($ListBox)

$Menu.ShowDialog()
}

Function Script {
$a1 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty Name
$a2 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty DeviceID
$a3 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty Caption
$a4 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty Manufacturer
$a5 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty SocketDesignation
$a6 = Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty MaxClockSpeed
}
#Affichage
Form

Script
 

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

Plus d'informations
il y a 10 mois 2 semaines - il y a 10 mois 2 semaines #33143 par Laurent Dardenne
>> il m'indique que les variables qui contiennent les commandes sont assignées
mais non utilisées.
La règle PSSA concernée à parfois un pb de portée.

>Malgré cela je ne trouve pas l'origine du problème.
Pb de portée.

>>Auriez vous une solution ?
1 -Renomme 'Script' en 'Get- Win32ProcessorInfos' ( par exemple),
2- cette fonction doit renvoyer un PSCustomObjet, :
#select object renvoi un nouvel objet personnalisé de type PSCustomObject
return Get-CimInstance -ClassName Win32_Processor | Select-Object Name,DevideId etc

3 -Appel cette fonction dans la fonction 'Form'
$MyInfos=Get- Win32ProcessorInfos
[void] $ListBox.Items.Add($MyInfos.Name)
etc

et renseigne la listbox avec les propriétés de l'objet.


On peut aussi appelé la fonction avec .Script afin de créer les variables dans la portée courante, mais moins on utilise les portées (scope) dans PS mieux on se porte.

Voir aussi : github.com/LaurentDardenne/Tutorial/tree...ort%C3%A9e%20(scope)[/url]

Tutoriels PowerShell
Dernière édition: il y a 10 mois 2 semaines par Laurent Dardenne. Raison: coquille

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

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