Question
[Résolu]Objet sélectionner ListBox
- de França
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 67
- Remerciements reçus 0
il y a 15 ans 5 mois #8310
par de França
[Résolu]Objet sélectionner ListBox a été créé par de França
Bonjour,
Je rencontre 2-3 petits problèmes avec mon script:
J'ai envoyé la liste des logiciels installés sur ma machine dans une ListBox grâce à la variable suivante:
$test = gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | select DisplayVersion
Ensuite je fais un ForEach pour envoyer la liste des logiciels dans ma listBox, jusque la pas de problème.
Ce n'est qu'à l'affichage que je remarque que les logiciels sont écrit de la façon suivante dans ma listBox:
@{DiplayName=Adobe Photoshop CS3}
Comment me débarrasser de ce @{DisplayName=}?
Mon 2ème soucis est que je n'arrive pas à afficher la version une fois l'objet sélectionner dans ma listBox, j'ai tenté cela:
[code:1]$buttonCombo.Add_Click({
gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | select DisplayVersion | where DisplayName -eq $combo.SelectedItem
})[/code:1]
Mais j'obtiens un message d'erreur me disant:
\"Impossible de lier le paramètre « FilterScript ». Impossible de convertir la valeur « DisplayName » du type « System.String » en type « System.
Management.Automation.ScriptBlock ».\"
Un peu d'aide serais la bienvenu
merci<br><br>Message édité par: unfam0us, à: 15/12/10 13:04
Je rencontre 2-3 petits problèmes avec mon script:
J'ai envoyé la liste des logiciels installés sur ma machine dans une ListBox grâce à la variable suivante:
$test = gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | select DisplayVersion
Ensuite je fais un ForEach pour envoyer la liste des logiciels dans ma listBox, jusque la pas de problème.
Ce n'est qu'à l'affichage que je remarque que les logiciels sont écrit de la façon suivante dans ma listBox:
@{DiplayName=Adobe Photoshop CS3}
Comment me débarrasser de ce @{DisplayName=}?
Mon 2ème soucis est que je n'arrive pas à afficher la version une fois l'objet sélectionner dans ma listBox, j'ai tenté cela:
[code:1]$buttonCombo.Add_Click({
gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | select DisplayVersion | where DisplayName -eq $combo.SelectedItem
})[/code:1]
Mais j'obtiens un message d'erreur me disant:
\"Impossible de lier le paramètre « FilterScript ». Impossible de convertir la valeur « DisplayName » du type « System.String » en type « System.
Management.Automation.ScriptBlock ».\"
Un peu d'aide serais la bienvenu
Connexion ou Créer un compte pour participer à la conversation.
- JoJo
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 20
- Remerciements reçus 0
il y a 15 ans 5 mois #8314
par JoJo
Réponse de JoJo sur le sujet Re:Objet sélectionner ListBox
pour ton 1er souci, je ne l'ai pas constaté sur ma machine XP...
Essaye ça pour ton 2eme souci:
[code:1]gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | where {$_.DisplayName -eq $combo.SelectedItem} | select-object DisplayVersion[/code:1]
Essaye ça pour ton 2eme souci:
[code:1]gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | where {$_.DisplayName -eq $combo.SelectedItem} | select-object DisplayVersion[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 5 mois #8315
par Arthur
Réponse de Arthur sur le sujet Re:Objet sélectionner ListBox
Ton permier souci est que tu entre dans ta listbox l'objet en entier... je m'explique 
Tu as une liste $liste avec comme propriété \"DisplayName\", dans ta liste tu as toto1, toto2, toto3
Pour récupérer juste les noms dans la boucle foreach il faut sélectionner la propriété ( même si y en a qu'une) :
[code:1]$liste | foreach { Write-Host $_.DisplayName }[/code:1]
Pour ton deuxième soucis comme crousti le montre il faut que tu fasse ton \"select\" APRES le \"where\" car ton \"select\" enlève toutes les autres propriétés dont le \"DisplayName\".
Tu as une liste $liste avec comme propriété \"DisplayName\", dans ta liste tu as toto1, toto2, toto3
Pour récupérer juste les noms dans la boucle foreach il faut sélectionner la propriété ( même si y en a qu'une) :
[code:1]$liste | foreach { Write-Host $_.DisplayName }[/code:1]
Pour ton deuxième soucis comme crousti le montre il faut que tu fasse ton \"select\" APRES le \"where\" car ton \"select\" enlève toutes les autres propriétés dont le \"DisplayName\".
Connexion ou Créer un compte pour participer à la conversation.
- de França
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 67
- Remerciements reçus 0
il y a 15 ans 5 mois #8321
par de França
Réponse de de França sur le sujet Re:Objet sélectionner ListBox
Merci beaucoup à vous pour ce coup de main c'est sympa tout fonctionne maintenant
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.033 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]Objet sélectionner ListBox