Il me semble que la boîte de dialogue s'ouvre correctement, mais c'est derrière la fenêtre de la console PowerShell. Malheureusement, il n'apparaît pas dans la barre des tâches, donc il n'y a aucune indication qu'il est là sauf si vous déplacez la fenêtre PowerShell ou Alt + Tab. Il apparaît également que la solution de contournement ShowHelp n'a eu aucun effet pour moi.
EDIT Voici une façon de le faire en utilisant votre idée de forme secondaire. L'idée de base est de créer un nouveau formulaire qui ouvre OpenFileDialog à l'intérieur de son événement affiché. La touche appelle Activate sur le formulaire avant d'ouvrir la boîte de dialogue, de sorte que le formulaire apparaisse au premier plan et que la boîte de dialogue s'affiche. J'ai déplacé le formulaire hors écran en définissant l'emplacement sur une valeur hors écran, mais vous pouvez également définir Form.Visible = $ false à partir de l'événement affiché.
[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
$ofn = New-Object System.Windows.Forms.OpenFileDialog
$outer = New-Object System.Windows.Forms.Form
$outer.StartPosition = [Windows.Forms.FormStartPosition] "Manual"
$outer.Location = New-Object System.Drawing.Point -100, -100
$outer.Size = New-Object System.Drawing.Size 10, 10
$outer.add_Shown({
$outer.Activate();
$ofn.ShowDialog($outer);
$outer.Close();
})
$outer.ShowDialog()
Si quelqu'un est intéressé, ce que je l'ai utilisé pour: http://stackoverflow.com/questions/182573/powershell-cli-or-gui-which-do-you- besoin-ou-préfèrent # 216936 –