使用进程 ID (PID) 从 powershell/python 最小化进程

Minimize Process from powershell/python using Process ID (PID)

我正在为应用程序锁编写 python 脚本。为此,我正在使用 python 子进程执行 Get-Process -Name "notepad++" PowerShell 命令以获取进程 ID。

现在,使用 psutil 我可以终止进程。但是我的 objective 是 在 while 循环中使用 powershell/python 最小化 windows。因此,在用户输入密码之前,该程序将无法使用。

使用 Powershell,您可以使用 UIAutomationClient 方法来完成此操作,而无需依赖本机调用。

这里有一个小例子来演示如何检查 window 状态,如果没有则最小化 window。

Add-Type -AssemblyName UIAutomationClient

$MyProcess = Get-Process -Name "notepad++"

$ae = [System.Windows.Automation.AutomationElement]::FromHandle($MyProcess.MainWindowHandle)
$wp = $ae.GetCurrentPattern([System.Windows.Automation.WindowPatternIdentifiers]::Pattern)


# Your loop to make sure the window stay minimized would be here
# While...
$IsMinimized = $wp.Current.WindowVisualState -eq 'Minimized'
if (! $IsMinimized) { $wp.SetWindowVisualState('Minimized') } 
# End While

参考

How to switch minimized application to normal state