SetWindowPos函数
定义:更改子窗口、弹出窗口或顶级窗口的大小、位置和 Z 顺序。 这些窗口根据其在屏幕上的外观进行排序。 最上面的窗口接收最高排名,是 Z 顺序中的第一个窗口。
提示:此函数是bool类型的
这个函数对于我们最大的作用就是置顶
当然,也有很多博主有其它很好的方法,这里就不介绍了
语法:
BOOL SetWindowPos(
HWND hWnd, // 要移动的窗口句柄
HWND hWndInsertAfter, // 插入位置的新窗口句柄,如果为NULL,则置于顶层
int X, // 新左上角坐标X
int Y, // 新左上角坐标Y
int cx, // 新宽度
int cy, // 新高度
SWP flags // 操作标志
);
其中参数含义如下:
hWnd
: 需要改变位置的窗口的句柄。hWndInsertAfter
: 如果非空,新窗口将插入此窗口之后;如果是NULL,则放置到所有窗口之上。X
和 : 窗口的新左上角坐标。Y
cx
和 : 新窗口的尺寸。cy
SWP
参数是一个枚举,可以指定如是否更改大小、是否重叠另一个窗口等操作。
常见的值有:SWP
SWP_NOSIZE
: 不改变窗口大小。SWP_NOMOVE
: 不改变窗口位置。SWP_NOZORDER
: 不改变窗口的堆叠顺序。SWP_FRAMECHANGED
: 如果窗口大小或位置改变了,那么其边框会更新。
可以这么写:
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
获取句柄不会的可以看上一章
而这次,究极无敌恶心的来了:
我们不把自己的运行框隐藏,因为大概率关不掉,但是,不隐藏依旧可以轻松解决。
所以,我们只需要让这个置顶就可以了
(本代码仅供娱乐,任何责任与作者无关)
#include <windows.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
HWND hwnd=GetForegroundWindow();
while(1)
{
SetCursorPos(rand()%1000,rand()%1000);
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
}
当然,这样的话还不够,我们还可以加一些嘲讽的东西
#include <windows.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
HWND hwnd=GetForegroundWindow();
while(1)
{
SetCursorPos(rand()%1000,rand()%1000);
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
cout<<" ********** "<<'\n';
cout<<" ************** "<<'\n';
cout<<" **************** "<<'\n';
cout<<" ************** "<<'\n';
cout<<" ********** "<<'\n';
cout<<" ***** "<<'\n';
cout<<" ***** ****"<<'\n';
cout<<" ****************** *"<<'\n';
cout<<" **** ****"<<'\n';
cout<<" ****************** *"<<'\n';
cout<<" **** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **************** "<<'\n';
cout<<" **** * "<<'\n';
cout<<" ************ * "<<'\n';
cout<<" * * "<<'\n';
cout<<" * * "<<'\n';
cout<<" * * "<<'\n';
cout<<" *** *** "<<'\n';
Sleep(0.0001);
system("cls");
cout<<" ********** "<<'\n';
cout<<" ************** "<<'\n';
cout<<" **************** "<<'\n';
cout<<" ************** "<<'\n';
cout<<" ********** "<<'\n';
cout<<" ***** ****"<<'\n';
cout<<" ***** ******** *"<<'\n';
cout<<" ********** ****"<<'\n';
cout<<" **** ******** *"<<'\n';
cout<<" ********** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **** "<<'\n';
cout<<" **** ******** "<<'\n';
cout<<" ****** * "<<'\n';
cout<<" **** * "<<'\n';
cout<<" **** ****** * "<<'\n';
cout<<" ****** * * "<<'\n';
cout<<" * * "<<'\n';
cout<<" * * "<<'\n';
cout<<" * * "<<'\n';
cout<<" *** *** "<<'\n';
Sleep(0.0001);
system("cls");
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
}
加什么完全是个人喜好的问题,可以随意选择