我使用WPK在PowerShell中开发了一个小型GUI工具。
我有以下启动命令
powershell -ExecutionPolicy Unrestricted -file PowerTools.ps1 -noexit -sta
我收到以下错误。
New-Object : Exception calling ".ctor" with "0" argument(s): "The calling thread must be STA, because many UI components require this."
At \WindowsPowerShell\Modules\WPK\GeneratedControls\PresentationFramework.ps1:34
10 char:29
+ $Object = New-Object <<<< System.Windows.Window
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
从我的谷歌搜索,STA站起来“单线程公寓”,我注意到powershell.exe有“-sta”标志,但这也无济于事。
我的ps1文件的本质如下所示
Import-Module WPK
function get-gui()
{
New-Window -WindowStartupLocation CenterScreen `
-Width 1200 -Height 200 -Show {
New-Grid -Rows 32, 32, 32, 32 -Columns 110, 200* {
...
}
}
}
}
get-gui
有任何提示吗?
(我确实花了很多时间做自己的研究)
答案 0 :(得分:2)
powerShell -sta -file PowerTools.ps1
答案 1 :(得分:0)
https://technet.microsoft.com/en-us/library/hh847736.aspx表示-file
必须位于选项列表中的最后一位,因为文件名后面的所有内容都被解释为文件的参数。这就是为什么它在-sta
之前列出-file
时有效,但在-file
之后无效。