前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >取消红蜘蛛窗口置顶

取消红蜘蛛窗口置顶

作者头像
我与梦想有个约会
发布2023-10-20 16:24:40
3510
发布2023-10-20 16:24:40
举报
文章被收录于专栏:jiajia_deng

红蜘蛛是我们上课时使用的屏幕广播软件,它的窗口会遮挡住所有的其他窗口,在听课的时候我们无法在一个屏幕内很方便的跟着老师一起写代码或者看文档。除非你拖动一下窗口的位置,但这样我们又无法查看整个广播的屏幕了。

解决这个问题有两个办法,一个是在窗口中间点击右键,会弹出一个菜单,点击第一个“显示工具栏”,随后再右键点击一次显示工具栏。这样窗口就可以让其他窗口覆盖了。我们可以一边听课一边跟着老师写代码。如下图:

当然我们本文主要给大家表达的并非是这种绕过问题的方式,而是我们如何通过代码实现,让这个窗口不在我们所有的窗口前面。在讨论这个问题之前,在讨论这个问题之前,我们要先知道,该如何操作这些窗口的属性。具体的步骤如下: 1、遍历所有 Windows 可见的窗口。(API EnumWindows) 2、获取每一个窗口的文本。(API GetWindowText) 3、判断窗口的文本是否包含红蜘蛛窗口文本的关键字“接收演示或示范中”。(字符串处理函数strstr)

4、如果包含关键字则取消窗口置顶属性。(SetWindowPos) 具体代码如下:

代码语言:javascript
复制
#include 
#include <Windows.h>
#include <Shlwapi.h>
#pragma comment(lib, “Shlwapi.lib”)
BOOL CALLBACK EnumWindowsProc(
_In_  HWND hwnd,
_In_  LPARAM lParam
)
{
TCHAR szTitle[BUFSIZ];
GetWindowText(hwnd, szTitle, BUFSIZ);
// 不区分大小写判断窗口是否包含某些关键字
if (StrStrI(szTitle, TEXT(“接收演示或示范中”)) != NULL)
{
// 输出窗口标题
std::wcout.imbue(std::locale(“chs”));
std::wcout << szTitle << std::endl;
// 设置窗口属性,HWND_NOTOPMOST 属性是取消窗口置顶
// SWP_NOMOVE 为忽略第三个和第四个参数
// SWP_NOSIZE 为忽略第五个和第六个参数
SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE  SWP_NOSIZE);
return FALSE;
}
return TRUE;
}
int main(int argc, char* argv[])
{
// 遍历所有窗口,第一个参数是一个回调函数
EnumWindows(EnumWindowsProc, 0);
getchar();
return 0;
}

以上代码在VS中新建一个Win32控制台空项目,然后新建一个cpp文件粘贴进去编译即可。得出的exe会自动搜索红蜘蛛窗口并将其取消置顶属性,这样我们就可以一边看广播,一边跟着操作了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档