J'ai une interface graphique, je souhaite ouvrir un dossier et sélectionner un fichier. Lorsque j'exécute mon code d'ISE, cela fonctionne. Mais lorsque je cours à partir d'un autre environnement avec cmd, il montre une erreur ceci est mon code mis à jour. Cela fonctionne en utilisant PS Isee, mais j'ai essayé de l'exécuter à partir de l'environnement WinPe, il montre ces erreurs ci-dessus.
Quelqu'un pourrait-il m'aider, s'il vous plaît. Merci p> p>
3 Réponses :
Je crois que ça va fonctionner si vous supprimez | Out-Null code> à partir de cette ligne $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog | Out-Null
Je supprimai le Out-Null code> et cela me donne une erreur appelant "showdialog" avec "0" argument (s) "Création d'une instance du composant COM avec CLSID ..... < / code>
Oui, je ne sais pas comment tu as fini là-bas, mais je vous suggère de commencer par une nouvelle session PowerShell afin de ne pas avoir beaucoup de malbouffe cachée dans la variable.
Vous n'avez pas mentionné à quel point il y avait plus de choses sur le script et le fait que vous l'exécutez dans WinPe.
Je ne comprends pas ce que tu veux dire
Cela fonctionne ... mais je pense que l'utilisation de loadwithpartialname code> a été obsolète. Je ne trouve pas la "nouvelle façon" à ce moment-là, tho. [ blush em>]
Juste besoin d'ajouter cela, ça fonctionne bien. Merci pour toute la contribution
$OpenFileDialog.AutoUpgradeEnabled =$false
Débarrassez-vous des «citations intelligentes» laides et utilisez-les droites. Aussi, montrez-nous comment vous appelez cette fonction PowerShell de CMD.
Je change les citations. Ceci comment j'appelle le PowerShell
PowerShell.exe -executionPasse de bypasspolicy -file% ~ dp0 \ gui.ps1 code>L'ISE charge automatiquement le sous-système GUI - c'est lui-même une application d'interface graphique. Vous devrez ajouter les commandes à charger les assemblys nécessaires.
Vous voulez dire ajouter ce
add-type -assemblyname system.windows.forms code>? @Lee_dailey@Sbr - Veuillez jeter un oeil à mon poste de réponse. Il fonctionne quand appelé à partir de CDM.exe via
PowerShell.exe -file fiename.ps1 code>.