判断窗口是否在当前虚拟桌面
判断 是否 当前 窗口 桌面 虚拟
2023-06-13 09:17:28 时间
最近项目中需要判断窗口是否在当前虚拟桌面的需求(Windows平台)。在网上找到了下面的方法,亲测可以实现,分享给大家。如果你有更好的方法,请在留言区分享吧。
IVirtualDesktopManager
实例的IsWindowOnCurrentVirtualDesktop
提供窗口是否在当前活动的虚拟桌面上。
IServiceProvider* pServiceProvider = NULL;
HRESULT hr = ::CoCreateInstance(
CLSID_ImmersiveShell, NULL, CLSCTX_LOCAL_SERVER,
__uuidof(IServiceProvider), (PVOID*)&pServiceProvider);
if (SUCCEEDED(hr))
{
IVirtualDesktopManager *pDesktopManager = NULL;
hr = pServiceProvider->QueryService(__uuidof(IVirtualDesktopManager), &pDesktopManager);
if (SUCCEEDED(hr))
{
BOOL bIsOnCurrentDesktop = FALSE;
hr = pDesktopManager->IsWindowOnCurrentVirtualDesktop(hWnd, &bIsOnCurrentDesktop);
if (SUCCEEDED(hr))
{
// use bIsOnCurrentDesktop as needed...
}
pDesktopManager->Release();
}
pServiceProvider->Release();
}
- 代码出处链接: https://stackoverflow.com/questions/40196874/how-to-use-the-ivirtualdesktopmanager-interface-in-c-win32
IVirtualDesktopManager
官方文档: https://docs.microsoft.com/zh-cn/windows/win32/api/shobjidl_core/nn-shobjidl_core-ivirtualdesktopmanager?redirectedfrom=MSDN
相关文章
- 给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。
- php安装向导中判断是否安装的实现思路
- js判断是否包含指定字符串_js判断字符串是否相等
- C/C++ 判断进程是否存在
- 【数字信号处理】线性时不变系统 LTI ( 判断某个系统是否是 “ 非时变 “ 系统 | 案例三 )
- PostGreSql 数据库如何判断字符串中是否有中文
- PHP instanceof:判断对象是否属于某个类
- Java判断中文字符串是否乱码详解编程语言
- Redis如何判断set/get是否为原子操作详解编程语言
- JSP Response.isNew()方法:判断当前用户是否为新用户
- Oracle日期比较:轻松判定某日期是否在某时段内(oracle日期判断)
- Linux网络连通状态检测,轻松判断网络是否畅通(linux网络连通检测)
- 如何在Oracle中判断一个字符串是否为日期(oracle判断是否是日期)
- Oracle中等于判断的使用方法(oracle判断等于)
- Linux知识考验: 如何正确判断Linux知识?(linux判断题)
- MySQL字段类型判断技巧分享(MySQL中判断字段类型)
- js判断一点是否在一个三角形内
- 判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
- 使用JS判断是否数字和小数点组合的数字的两中方法比较(isNaN和逐判断)
- Js如何判断客户端是PC还是手持设备简单分析
- JQuery判断子iframe何时加载完成解决方案
- jquery如何判断某元素是否具备指定的样式
- 判断客户浏览器是否支持cookie的示例代码
- VC判断一个文件为目录的方法
- 一个判断抢购时间是否到达的简单的js函数