由于我的工作性质,我需要每 10 分钟检查一次 chrome 浏览器,然后最小化浏览器并进行输入工作。通常我会使用计时器或警报,但即使我正在使用不同的应用程序(如 excel),现有的最小化到任务栏的 chrome 浏览器是否会自动最大化?
我使用 Tinytask 创建了一个宏并对其进行了任务调度。它有时有效,有时无效。正在寻找原生 Windows 分辨率。
请帮忙。
答案1
您可以将其保存为类似脚本MyScript.ps1
并使用 powershell 运行它:
# maximizes chrome every 10 minutes
Add-Type -name NativeMethods -namespace Win32 -MemberDefinition '
[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);'
While ($true) {
Write-Host 'Waiting for 10 minutes'
Start-Sleep -Seconds 600
# Find most recent chrome window
$Window = (Get-Process chrome | Where MainWindowHandle -NE 0)[0].MainWindowHandle
# Maximize window and activate
[Win32.NativeMethods]::ShowWindowAsync($Window,3) | Out-Null
Write-Host "Maximized chrome window $window"
}
# other ShowWindow values like Minimize (2) here:
# https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow
这将每 10 分钟最大化一次您的 chrome 窗口,直到您关闭 powershell 窗口。如果您打开第二个 chrome 窗口,它将选择最新的一个
答案2
这不是原生的 Windows 应用程序,但很有效:使用 Nirstoft 的小型近红外命令app 激活应用程序窗口,使用任务管理器调用它,或者在具有无限循环的 .bat 文件中调用它,暂停 600 秒。
"C:\Program Files (x86)\NirSoft\NirCmd\nircmd" win activate process <process.exe>
例如,我想让 Firefox 单实例,因此使用以下脚本启动它:
@echo off
tasklist | findstr "firefox.exe"
if %errorlevel% equ 0 goto running
if %errorlevel% equ 1 start " " "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
exit
:running
"C:\Program Files (x86)\NirSoft\NirCmd\nircmd" win activate process firefox.exe
exit
如果 Firefox 未运行,则启动它;如果已运行,则将其置于前面win 激活进程。