我在调用某个程序时遇到问题,它不显示在屏幕上,而只显示在后台,并且其图标和标题在任务栏中闪烁。
然而,当程序最小化时,这种情况不会发生。然后它会在前台正常打开。
我不想使用“始终在顶部”应用程序,因为我通常从资源管理器窗口或通过 Chrome 等来编辑这些文件。
我如何让它在被调用时始终处于焦点位置?或者当不处于焦点位置时自动最小化它?
答案1
设置前台窗口
该
SetForegroundWindow
函数将创建指定窗口的线程置于前台并激活该窗口。键盘输入被定向到该窗口,并为用户更改各种视觉提示。系统为创建前台窗口的线程分配的优先级略高于其他线程。前台窗口是 Z 顺序顶部的窗口。它是用户正在使用的窗口。在抢占式多任务环境中,通常应该让用户控制哪个窗口是前台窗口。
Windows 98/Me、Windows 2000/XP:系统限制哪些进程可以设置前台窗口。只有当下列条件之一成立时,进程才可以设置前台窗口:
该进程是前台进程。
该过程由前台进程启动。
该进程收到了最后一个输入事件。
没有前台进程。
前台进程正在调试。
前台没有被锁定(见
LockSetForegroundWindow
)。前台锁定超时已到期(请参阅
SPI_GETFOREGROUNDLOCKTIMEOUT
)SystemParametersInfo
。Windows 2000/XP:没有活动菜单。
通过这一更改(从 Win 95/NT4 开始),应用程序无法强制窗口 当用户正在使用另一个窗口时移到前台。 相反,
SetForegroundWindow
将激活窗口(参见SetActiveWindow
)并调用FlashWindowEx
函数来通知用户。
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setforegroundwindow