powershell windows form browes dialogue
Im essayant de créer un formulaire windows dispose d'un bouton lorsque l'utilisateur clique dessus va afficher un dossier/fichier browes la fenêtre, l'utilisateur sélectionne le fichier/dossier et clique sur OK et je peux alors utiliser le chemin d'accès sélectionné comme une chaîne de caractères pour un autre script.
le problème est que lorsque je l'exécute par le biais de PowerGUI (scripts powershell app), il fonctionne très bien, mais quand je le lance via windows powershell il se bloque lors du chargement de la boîte de dialogue parcourir, n'importe qui vu ça avant, ou voir ce que j'ai mal fait ou reçu une solution de rechange, toute aide serait appréciée.
cls
$button = $browse = $form = 0
[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
$browse = new-object system.windows.Forms.FolderBrowserDialog
$browse.RootFolder = [System.Environment+SpecialFolder]'MyComputer'
$browse.ShowNewFolderButton = $false
$browse.selectedPath = "C:\"
$browse.Description = "Choose a directory"
$button1 = New-Object system.Windows.Forms.Button
$button1.Text = "Choose Directory"
$button1.Add_Click({$browse.ShowDialog()})
$button1.left = 20
$button1.top = 20
$form = New-Object system.windows.forms.Form
$form.controls.add($button1)
$form.ShowDialog()
$form.Dispose()
$browse.SelectedPath
- Je suis sur windows 7 x32, powershell v3.0 et votre code fonctionne en console et en ISE.
- Le Script fonctionne très bien sur mon Windows 7 x64 et PowerShell 2.0 de la console. Est-il possible que PowerGui a installé quelque chose qui peut être en gardant votre script à partir de l'exécution? Aussi, essayez d'ajouter { $ErrorActionPreference = se Renseigner } pour savoir si des erreurs s'y sont vous passer par? Ou d'utiliser certains { écriture d'hôtes "xxxxx" } pour obtenir une meilleure idée de l'endroit où votre application est suspendue, puis mise à jour de votre question.
- yep mon powershell comand écran continue de fonctionner comme la version 1 mais quand je fais $psversiontable en PS je peux le voir, j'ai V2 installé mais mon script ne s'exécute pas comme V2 étrange 😐
Vous devez vous connecter pour publier un commentaire.
Votre code fonctionne quand je l'ai essayer. Toutefois, j'ai remarqué que parfois(surtout la 2ème fois en une séance, j'utilise un browsewindow, il est caché derrière la console PowerShell et il me semble qu'il est coincé. Si vous le pouvez essayez de déplacer votre console powershell sur le côté quand il "accroche"?
Aussi, comme une suggestion: si vous êtes seulement en utilisant le formulaire pour sélectionner l'emplacement du dossier, je voudrais sauter. Vous n'aurez pas recevoir le navigateur de la valeur jusqu'à ce que vous fermez le formulaire de toute façon, alors essayez quelque chose comme ceci à la place:
J'ai eu un problème similaire lors de l'exécution de mon script par PowerShellPlus (anthère powershell de l'éditeur). Heureusement, j'ai trouvé ce post qui montre comment demander un dossier sans l'aide de la FolderBrowserDialog. Voici le code que j'utilise dans un ensemble de powershell fonctions que j'ai écrit pour demander à l'utilisateur pour de nombreux types différents de la saisie via une interface graphique.
Si vous apportez les modifications suivantes à la fonction fournie par Frode. F, la boîte de dialogue viendra toujours vers le haut.
Je pense que vous êtes en train de vivre le problème que j'ai rencontrés, qui est abordé dans le cette question
La réponse suggère la création d'
.ShowHelp
à$true
, comme ceci: