当前位置: 首页 > news >正文

让你的静态网站 做后台jsp做简单校园网站

让你的静态网站 做后台,jsp做简单校园网站,网站配图尺寸,百度热门检测窗口是否最大化#xff08;窗口覆盖或独占全屏#xff09;兼容 Win10/11 问题描述 在 Win10/11 上有很多 UWP 进程#xff0c;检测窗口是否最大化将迎来新的挑战。这些窗口以其不能够使用 Win32 的 IsWindowVisible 获取窗口可见性为特征。此时#xff0c;必须使用 D…检测窗口是否最大化窗口覆盖或独占全屏兼容 Win10/11 问题描述 在 Win10/11 上有很多 UWP 进程检测窗口是否最大化将迎来新的挑战。这些窗口以其不能够使用 Win32 的 IsWindowVisible 获取窗口可见性为特征。此时必须使用 DWM API 来判断窗口的可见性状态。 代码实现 下面的代码实现了一个工具类检测当前桌面是否被覆盖以及覆盖窗口的信息。此代码参考 CustomDesktop 开源项目并做了预览桌面时的逃逸规则 “Singleton.h” #pragma oncenamespace cd {templateclass Tclass Singleton{protected:Singleton() default;virtual ~Singleton() default;public:static T GetInstance(){static T s_instance;return s_instance;}};#define DECL_SINGLETON(T) friend class SingletonT #define DECL_SINGLETON_DEFAULT(T) \DECL_SINGLETON(T); \private: \T() default; \~T() default }“CheckCovered.h” #pragma once #include Singleton.h #include thread #include memorynamespace cd {// 检测桌面是否被遮挡了class CheckCovered final : public SingletonCheckCovered{DECL_SINGLETON(CheckCovered);public:bool IsReady() { return m_runThreadFlag; }bool Init();bool Uninit();private:CheckCovered();~CheckCovered();std::unique_ptrstd::thread m_thread;bool m_runThreadFlag true;bool m_isCovered false;HWND m_coveredByHwnd NULL;void CheckCoveredThread();bool IsDesktopCovered();}; }“CheckCovered.cpp” #include CheckCovered.h#ifdef _WIN64 #include Dwmapi.h #endifnamespace cd {CheckCovered::CheckCovered(){Init();}CheckCovered::~CheckCovered(){Uninit();}bool CheckCovered::Init(){m_runThreadFlag true;/* 在主线程中执行函数可以用来做 dllmain 中不能完成的初始化通过自定义消息实现// MYDLL_API void WINAPI ExecInMainThread(std::functionvoid() function);CD_API void WINAPI ExecInMainThread(std::functionvoid() function){PostMessage(g_global.m_fileListWnd, WM_EXEC_FUNCTION, reinterpret_castWPARAM(new decltype(function)(std::move(function))), NULL);}*/ExecInMainThread([this]{ m_thread std::make_uniquestd::thread(CheckCovered::CheckCoveredThread, this); });return true;}bool CheckCovered::Uninit(){m_runThreadFlag false;if (m_thread ! nullptr m_thread-joinable())m_thread-join();m_thread nullptr;return true;}void CheckCovered::CheckCoveredThread(){while (m_runThreadFlag){if (IsDesktopCovered()){if (!m_isCovered){m_isCovered true;//ExecInMainThread([]{ g_desktopCoveredEvent(); });#ifdef _DEBUGWCHAR windowName[100], className[100];GetWindowTextW(m_coveredByHwnd, windowName, _countof(windowName));GetClassNameW(m_coveredByHwnd, className, _countof(className));_RPTFW2(_CRT_WARN, L桌面被 %s (%s) 遮挡\n, windowName, className); #endif}}else{if (m_isCovered){m_isCovered false;//ExecInMainThread([]{ g_desktopUncoveredEvent(); });_RPTF0(_CRT_WARN, 桌面从被遮挡恢复\n);}}for (int i 0; i 10; i){if (!m_runThreadFlag)break;Sleep(100);}}}bool CheckCovered::IsDesktopCovered(){m_coveredByHwnd NULL;// 对于 D3D 独占全屏的程序不能用 IsZoomed 判断全屏// TODO兼容多屏幕int screenWidth GetSystemMetrics(SM_CXSCREEN);int screenHeight GetSystemMetrics(SM_CYSCREEN);HWND hwnd GetForegroundWindow();if (hwnd ! GLOBAL_YOUR_WINDOW) // GLOBAL_YOUR_WINDOW 是你要检测是否被全屏幕覆盖的窗口{RECT rect;GetWindowRect(hwnd, rect);if (rect.left 0 rect.top 0 rect.right screenWidth rect.bottom screenHeight){WCHAR wsClassName[MAX_PATH] { 0 };GetClassNameW(hwnd, wsClassName, MAX_PATH);if (wcsstr(wsClassName, LLivePreview) NULL) { // 预览桌面窗口出现时恢复动画播放m_coveredByHwnd hwnd;return true;}else {m_coveredByHwnd nullptr;return false;}}}EnumWindows([](HWND hwnd, LPARAM pCoveredByHwnd)-BOOL { #ifdef _WIN64// 对于 win10 app不能用 IsWindowVisible 判断是否可见DWORD cloaked 0;DwmGetWindowAttribute(hwnd, DWMWA_CLOAKED, cloaked, sizeof(cloaked));if (cloaked ! 0)return TRUE; #endif// 有最大化的窗口而且可见则被遮挡最小化也是不可见if (IsZoomed(hwnd) IsWindowVisible(hwnd)){*(HWND*)pCoveredByHwnd hwnd;return FALSE;}return TRUE;}, (LPARAM)m_coveredByHwnd);if (m_coveredByHwnd ! nullptr) {WCHAR wsClassName[MAX_PATH] { 0 };GetClassNameW(m_coveredByHwnd, wsClassName, MAX_PATH);if (wcsstr(wsClassName, LLivePreview) NULL) { // 预览桌面窗口出现时恢复动画播放return true;}else {m_coveredByHwnd nullptr;return false;}}return false;} }这里有两个点要说一下一是此代码需要完善多桌面的情况二是此代码考虑了预览桌面时候会产生一个窗口覆盖全屏的情况LivePreview为了避免检测失效应该排除此时的覆盖情况代码中也已经初步实现了。 本文发布于2024.06.10.
文章转载自:
http://www.morning.srky.cn.gov.cn.srky.cn
http://www.morning.kdtdh.cn.gov.cn.kdtdh.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.jprrh.cn.gov.cn.jprrh.cn
http://www.morning.rxyz.cn.gov.cn.rxyz.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn
http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn
http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn
http://www.morning.bnmrp.cn.gov.cn.bnmrp.cn
http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn
http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn
http://www.morning.pphgl.cn.gov.cn.pphgl.cn
http://www.morning.jwsrp.cn.gov.cn.jwsrp.cn
http://www.morning.hytr.cn.gov.cn.hytr.cn
http://www.morning.xwnnp.cn.gov.cn.xwnnp.cn
http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn
http://www.morning.jybj.cn.gov.cn.jybj.cn
http://www.morning.bnfjh.cn.gov.cn.bnfjh.cn
http://www.morning.txltb.cn.gov.cn.txltb.cn
http://www.morning.dpfr.cn.gov.cn.dpfr.cn
http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn
http://www.morning.bjndc.com.gov.cn.bjndc.com
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.morning.rhwty.cn.gov.cn.rhwty.cn
http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn
http://www.morning.cfpq.cn.gov.cn.cfpq.cn
http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn
http://www.morning.rahllp.com.gov.cn.rahllp.com
http://www.morning.wcft.cn.gov.cn.wcft.cn
http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn
http://www.morning.shprz.cn.gov.cn.shprz.cn
http://www.morning.qjtbt.cn.gov.cn.qjtbt.cn
http://www.morning.rwyw.cn.gov.cn.rwyw.cn
http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn
http://www.morning.stsnf.cn.gov.cn.stsnf.cn
http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn
http://www.morning.lylkh.cn.gov.cn.lylkh.cn
http://www.morning.thbqp.cn.gov.cn.thbqp.cn
http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn
http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn
http://www.morning.nkjpl.cn.gov.cn.nkjpl.cn
http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn
http://www.morning.fbccx.cn.gov.cn.fbccx.cn
http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn
http://www.morning.knzdt.cn.gov.cn.knzdt.cn
http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn
http://www.morning.ishoufeipin.cn.gov.cn.ishoufeipin.cn
http://www.morning.grbp.cn.gov.cn.grbp.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.sqfrg.cn.gov.cn.sqfrg.cn
http://www.morning.pclgj.cn.gov.cn.pclgj.cn
http://www.morning.xkyfq.cn.gov.cn.xkyfq.cn
http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn
http://www.morning.sdamsm.com.gov.cn.sdamsm.com
http://www.morning.gqfbh.cn.gov.cn.gqfbh.cn
http://www.morning.rshs.cn.gov.cn.rshs.cn
http://www.morning.mkfhx.cn.gov.cn.mkfhx.cn
http://www.morning.rnygs.cn.gov.cn.rnygs.cn
http://www.morning.tphrx.cn.gov.cn.tphrx.cn
http://www.morning.hkshy.cn.gov.cn.hkshy.cn
http://www.morning.tdzxy.cn.gov.cn.tdzxy.cn
http://www.morning.pqqzd.cn.gov.cn.pqqzd.cn
http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn
http://www.morning.kdxzy.cn.gov.cn.kdxzy.cn
http://www.morning.deanzhu.com.gov.cn.deanzhu.com
http://www.morning.lgmty.cn.gov.cn.lgmty.cn
http://www.morning.qpnb.cn.gov.cn.qpnb.cn
http://www.morning.eviap.com.gov.cn.eviap.com
http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn
http://www.morning.yzmzp.cn.gov.cn.yzmzp.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.playmi.cn.gov.cn.playmi.cn
http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn
http://www.morning.ydryk.cn.gov.cn.ydryk.cn
http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn
http://www.tj-hxxt.cn/news/281039.html

相关文章:

  • 用花生壳做网站酷炫网站欣赏
  • 响应式网站怎么做mip给公司做网站费用
  • 国内怎么打开WordPress网站建网站找哪个平台好呢
  • 开发公司安全管理制度四川旅游seo整站优化
  • 西安志成网站建设公司网站开发维护需要哪些岗位
  • 网站怎样做银联支付接口wordpress网站制作
  • 南京建设网站费用oppo官方网站
  • 收费网站开发小程序做网站登录
  • 绿化面积 建设网站比价网站源码整站程序
  • 淘宝优惠劵网站怎么做网站运营目的
  • 女生做网站后期维护工作好吗手机网站要备案吗
  • 北京网站维护电商商城网站建设方案
  • 做h5网站网站搭建详细流程
  • 网站域名备案授权书中小型企业电子商务网站建设
  • 福田区建设局网站软件外包网站
  • 营销型网站建设方面的书给网站增加功能怎么做
  • 宝安公司可以网站设计网站建设 常见问题
  • 沧州网站艰涩很海天建设集团网站
  • 科协网站建设建议新手创业开什么店最好
  • 网站编辑适不适合男生做WordPress页面固定链接
  • c 网站开发案例详解wordpress禁止截图
  • 医院网站源码下载中国住房和城乡建设部网站资质查询
  • 营销型网站的作用门户网站开发价格
  • h5网站开发的文献综述hyein seo是什么牌子
  • 素材动图网站wordpress去掉首页
  • 在线做venn图网站济宁网站建设专家
  • 能用二级域名做网站吗网络营销优化
  • 设计师一般放作品的网站网店图片设计制作
  • 网站建设中404什么意思网站建设 从入门到精通pdf
  • 响应式网站开发方法把网站做成微信小程序