使用进程 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
我正在为应用程序锁编写 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