在WPF表单上执行操作最小化–;PowerShell(版本5)

在WPF表单上执行操作最小化–;PowerShell(版本5),wpf,forms,powershell,Wpf,Forms,Powershell,我有一个PowerShell脚本,它从插入的XML代码创建WPF表单。此表单将在信息亭工作站上运行,没有窗口(因此没有最大化、最小化或关闭按钮),并占用整个屏幕 即使表单本身没有窗口按钮,用户仍然可以按键盘上的WIN键,获取任务栏,右键单击任务栏中的表单,然后选择最小化、最大化或关闭表单 因此,我设置了一个关闭锁定工作站的操作(对于这个信息亭来说,这是一个更好的选项,而不是阻止表单关闭),方法如下: $form.Add_Closing({ $shell = New-Object -Com

我有一个PowerShell脚本,它从插入的XML代码创建WPF表单。此表单将在信息亭工作站上运行,没有窗口(因此没有最大化、最小化或关闭按钮),并占用整个屏幕

即使表单本身没有窗口按钮,用户仍然可以按键盘上的WIN键,获取任务栏,右键单击任务栏中的表单,然后选择最小化、最大化或关闭表单

因此,我设置了一个关闭锁定工作站的操作(对于这个信息亭来说,这是一个更好的选项,而不是阻止表单关闭),方法如下:

$form.Add_Closing({
    $shell = New-Object -ComObject "Wscript.Shell"
    $shell.Run("%windir%\System32\rundll32.exe user32.dll,LockWorkStation")
})
如果可能的话,我也希望这样做,但似乎不知道怎么做


仅供参考。我并不打算将其本身作为一种安全功能,但更重要的是,对于这个信息亭站来说,这样做比不这样做更好

如果
$form
是您的表单,那么您可以尝试以下方法(将重复部分包装在函数中以保持干燥):

由于您不想调整窗口的大小,因此可以简单地使用:

$form.Add_StateChanged({ Lock-Workstation })

如果
$form
是您的表单,那么您可以尝试以下方法(将重复部分包装在函数中以保持干燥):

由于您不想调整窗口的大小,因此可以简单地使用:

$form.Add_StateChanged({ Lock-Workstation })

谢谢当我尝试使用Add_Resize时,我收到一个错误:“方法调用失败,因为[System.Windows.Window]不包含名为“Add_Resize”的方法。”
Resize
用于
WinForms
,抱歉。似乎
StateChanged
WPF
^一起工作。我已经编辑了我的答案。谢谢。当我尝试使用Add_Resize时,我收到一个错误:“方法调用失败,因为[System.Windows.Window]不包含名为“Add_Resize”的方法。”
Resize
用于
WinForms
,抱歉。似乎
StateChanged
WPF
^一起工作。我已经编辑了我的答案。