我希望能够查询某个函数并给它一个processID或processName - 然后它应该返回true或者false说该进程是否在前台.
因此,即Firefox的查询将返回true(因为现在我在FireFox中,键入此内容),其他所有内容都应该返回false.
对于每种类型的应用程序(.net,java/swing,纯c ++/win32-ui),这是否可行?
GetForegroundWindow和GetWindowThreadProcessId应该可以让你获得这些信息.
即,如果你知道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);
}
Run Code Online (Sandbox Code Playgroud)
这适用于在某种程度上使用核心Win32库的任何应用程序 - 这将包括Windows窗体,WPF,本机Win32应用程序等.请注意,这只适用于在调用桌面和会话上运行的应用程序 - 您可以'例如,使用它来确定另一个用户的应用程序是否在前台.
| 归档时间: |
|
| 查看次数: |
6030 次 |
| 最近记录: |