rect函数与MoveWindow函数的运用
今天打算新作一个病毒,刚好用到了,就说一下
rect对象用来存储一个矩形框的左上角坐标、宽度和高度。
left: 指定矩形框左上角的x坐标
top: 指定矩形框左上角的y坐标
right: 指定矩形框右下角的x坐标
bottom:指定矩形框右下角的y坐标
MoveWindow函数:改变指定窗口的位置和大小。
语法:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint )
获取句柄不会的可以看前几期(http://t.csdnimg.cn/krZU0)
我个人想实现的效果是要点到运行框关闭键的时候就移一点,但是在下方状态栏仍然可以关闭,所以有两个版本:
(本代码仅供娱乐,任何责任与作者无关)
1.隐藏版
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void move(HWND hwnd,RECT rect)
{
int a=rand();
if(a%2==0)
{
if(a%2==0)
{
MoveWindow(hwnd,rect.left+50,rect.top,rect.right-rect.left,rect.bottom-rect.top,TRUE);
}
else
{
MoveWindow(hwnd,rect.left-rect.right,rect.top,rect.right+50,rect.bottom-rect.top,TRUE);
}
}
else
{
if(a%2==0)
{
MoveWindow(hwnd,rect.left,rect.top+20,rect.right,rect.bottom-rect.top,TRUE);
}
else
{
MoveWindow(hwnd,rect.left,rect.top-rect.bottom,rect.right,rect.bottom+20,TRUE);
}
}
}
void fun()
{
RECT rect;
HWND hwnd=GetForegroundWindow();
GetWindowRect(hwnd,&rect);
POINT pt;
GetCursorPos(&pt);
if((pt.x>=rect.right-100&&pt.x<=rect.right+30)&&(pt.y>=rect.top-40&&pt.y<=rect.top+30))
MoveWindow(hwnd,rect.left+50,rect.top,rect.right-rect.left,rect.bottom-rect.top,TRUE);
}
int main()
{
HWND hwnd=GetForegroundWindow();
ShowWindow(hwnd,SW_HIDE);
while(1)
{
fun();
Sleep(10);
}
}
第二个:
不隐藏,但是会一直闪,我打算加一个置顶,不会的看这章(http://t.csdnimg.cn/4mKoP)
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void move(HWND hwnd,RECT rect)
{
int a=rand();
if(a%2==0)
{
if(a%2==0)
{
MoveWindow(hwnd,rect.left+50,rect.top,rect.right-rect.left,rect.bottom-rect.top,TRUE);
}
else
{
MoveWindow(hwnd,rect.left-rect.right,rect.top,rect.right+50,rect.bottom-rect.top,TRUE);
}
}
else
{
if(a%2==0)
{
MoveWindow(hwnd,rect.left,rect.top+20,rect.right,rect.bottom-rect.top,TRUE);
}
else
{
MoveWindow(hwnd,rect.left,rect.top-rect.bottom,rect.right,rect.bottom+20,TRUE);
}
}
}
void fun()
{
RECT rect;
HWND hwnd=GetForegroundWindow();
GetWindowRect(hwnd,&rect);
POINT pt;
GetCursorPos(&pt);
if((pt.x>=rect.right-100&&pt.x<=rect.right+30)&&(pt.y>=rect.top-40&&pt.y<=rect.top+30))
MoveWindow(hwnd,rect.left+50,rect.top,rect.right-rect.left,rect.bottom-rect.top,TRUE);
}
int main()
{
HWND hwnd=GetForegroundWindow();
while(1)
{
SetCursorPos(rand()%1000,rand()%1000);
fun();
system("color b4");
system("color c4");
system("color d4");
system("color e4");
system("color f4");
system("color 64");
system("color 34");
system("color 54");
system("color 84");
Sleep(10);
}
}
以上就是新的病毒了,纯原创