关闭后调用函数时为什么不关闭powershell

时间:2013-08-02 23:30:12

标签: powershell

我在表单上有一个按钮,代码如下:

$BrowseButton = New-Object System.Windows.Forms.Button
$BrowseButton.Location = New-Object System.Drawing.Size(97,75)
$BrowseButton.Size = New-Object System.Drawing.Size(75,23)
$BrowseButton.Text = "Browse"
$BrowseButton.Add_Click({$pathForm.Close();getPath})
$pathForm.Controls.Add($BrowseButton)

我的目标是关闭$ pathForm并调用以下函数:

Function getPath {

$app = new-object -com Shell.Application
$folder = $app.BrowseForFolder(0, "Select Folder", 0, "C:\")
if ($folder.Self.Path -ne "") {$selected = "You selected " + $folder.Self.Path}

}

如果没有调用$ getPath,表单将按预期关闭。但是,当我向单击添加“getPath”时,表单不会关闭,并且后面会打开BrowseForFolder shell应用程序。是什么导致它保持开放?

我是PowerShell和编码的新手,因此我的代码中可能存在明显的错误。谢谢!

1 个答案:

答案 0 :(得分:0)

对我而言,麻烦来自于Add_Click函数中运行的代码由消息泵执行,该消息泵将执行消息以关闭表单。一种解决方案是在Start-job CmdLet中执行getPath。