gpt4 book ai didi

windows - 如何确定进程是否是当前事件/前台应用程序

转载 作者:可可西里 更新时间:2023-11-01 13:23:26 64 4
gpt4 key购买 nike

我希望能够查询一些函数并给它一个 processID 或 processName - 然后它应该返回 truefalse 是否该进程在前景与否。

因此,对于 Firefox 的查询将返回 true(因为现在我在 FireFox 中,输入这个)并且其他所有内容都应该返回 false



这是否适用于每种类型的应用程序(.net、java/swing、纯 c++/win32-ui)?

  • 此问题仅适用于 Windows。

最佳答案

GetForegroundWindowGetWindowThreadProcessId应该让你得到这些信息。

即,如果您知道 pid,只需根据如下函数检查它:

bool IsForegroundProcess(DWORD pid)
{
HWND hwnd = GetForegroundWindow();
if (hwnd == NULL) return false;

DWORD foregroundPid;
if (GetWindowThreadProcessId(hwnd, &foregroundPid) == 0) return false;

return (foregroundPid == pid);
}

这将适用于在某种程度上使用核心 Win32 库的任何应用程序 - 这将包括 Windows 窗体、WPF、 native Win32 应用程序等。请注意,这仅适用于在调用桌面和 session 上运行的应用程序 -例如,您不能使用它来确定另一个用户的应用程序是否在前台。

关于windows - 如何确定进程是否是当前事件/前台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/884256/

64 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com