ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

关于MyDockFinder的顶部菜单栏不被遮盖的原理剖析

关于MyDockFinder的顶部菜单栏不被遮盖的原理剖析 本文仅供学习交流严禁用于商业用途转载请注明出处最近偶然发现了mydockfinder这一桌面美化软件发现其在启动时会自动将桌面窗口下移自动空出一块区域留给软件的“myfinder”部分遂好奇其原理发现网上资料较少在经过分析后恍然大悟遂撰本文。首先打开MicrosoftSpy由于考虑到mydockfinder退出时会重复将桌面窗口上移动作故选中mydockfinder对其进行事件分析注意到在软件关闭时其会调用SystemParametersInfo使用SPI_SETWORKAREA作为参数故有以下测试#include windows.h #include iostream int main(int argc, char *argv[]) { RECT new_area, area_bk; // 备份原RECT SystemParametersInfo(SPI_GETWORKAREA, 0, area_bk, 0); std::cout area_bk.left area_bk.top area_bk.right area_bk.bottom; // 修改RECT new_area.left area_bk.left; new_area.top area_bk.top20; new_area.right area_bk.right; new_area.bottom area_bk.bottom; SystemParametersInfo(SPI_SETWORKAREA, 0, new_area, SPIF_UPDATEINIFILE); Sleep(10000); // 还原RECT SystemParametersInfo(SPI_SETWORKAREA, 0, area_bk, SPIF_UPDATEINIFILE); return 0; }编译运行效果同mydockfinder类似故问题解决。
返回列表