远程恶搞舍友电脑

程序功能:可以让对方电脑无法使用当前打开的软件

注意:如果要打包成.exe发给别,要将debug模式变成release模式即发布模式

#include<iostream>
#include<Windows.h> //win32 API 接口 控制系统的一些功能
#include<time.h>
using namespace std;	
int main()
{
    
    
	int cx=0,cy=0;
	HWND qqhwnd;
	RECT rect;   //定义一个矩形
	POINT pt; //定义一个点
	int x=0, y=0;

	HKEY hkey;  //注册表

	//下面的代码是将该程序变为开机自启项,具有危险性,建议谨慎使用
	//----------------------------------------------------------------------------------------

	获取当前exe的路径      module模块  filename文件路径
	//char exepath[MAX_PATH] = {0};
	//GetModuleFileName(
	//	 NULL,                  //如果该参数为NULL,该函数返回该应用程序全路径
	//	 exepath,                  //指定一个字符串保存路径名     *****项目-》高级-》多字节字符串*****
	//	 MAX_PATH                  //字符串的最大字符数
	//);

	开机自启项路径
	//char keypath[MAX_PATH] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
	//RegOpenKey(
	//	HKEY_CURRENT_USER,           //打开的注册表项目
	//	keypath,                             //打开的子健的名字的地址
	//	&hkey                              //打开的句柄的地址
	//); //hkey 就是开机自启的注册表ID

	设置注册表项的数据
	//RegSetValueEx(
	//	hkey, //一个已经打开的注册表项
	//	"WIndows 系统核心组件", //新建注册表数据的名称
	//	0,//保留项,强制指定为0
	//	REG_SZ,//数据的类型   REG_SZ为以‘\0’结尾的字符串
	//	(unsigned char*)exepath,        //指向一个字符串 自启的程序的路径
	//	MAX_PATH              //指向的数据大小
	//);

	//---------------------------------------------------------------------------------


	//随机数种子
	srand((unsigned int)time(NULL));
	//1.知道屏幕的分辨率
	 cx = GetSystemMetrics(SM_CXSCREEN); //获取屏幕分辨率:x
	 cy = GetSystemMetrics(SM_CYSCREEN); //获取屏幕分辨率:y
	//2.得到某一个窗口的句柄
	 //qqhwnd = FindWindow(
		// "TXGuiFoundation", //窗口类名称
		// "QQ"               //窗口标题
	 //);
	 while (1)
	 {
    
    
		 //获取当前工作窗口
		 qqhwnd = GetForegroundWindow();
		 //3.通过窗口的ID得到窗口的矩形范围
		 GetWindowRect(
			 qqhwnd,   //获取哪一个窗口
			 &rect    //保存范围的数据
		 );
		 //4.获取光标的点
		 GetCursorPos(&pt);
		 //5.判断光标有没有跟窗口重合,如果重合就把窗口移动到另外的地方
		 if (pt.x <= rect.right && pt.x >= rect.left && pt.y >= rect.top && pt.y <= rect.bottom)
		 {
    
    
			 x = rand() % (cx - 500);  //不让窗口跑出去
			 y = rand() % (cy - 500);
			 MoveWindow(
				 qqhwnd,  //需要移动的窗口句柄
				 x, y,       //int x,int y   窗口新的左上角坐标
				 500, 500,       //int width,int height  窗口新的高度和宽度 
				 true           //bool repaint  是否重绘
			 );
		 }
	 }
	

	//HWND qqhwnd; //定义一个窗口句柄,用来保存一个窗口ID
	//HKEY  hkey; //定义一个注册表句柄,用来保存一条注册表数据(ID)控制系统

	获取系统的数据
	//int cx=GetSystemMetrics(SM_CXSCREEN); //获取屏幕分辨率:x
	//int cy=GetSystemMetrics(SM_CYSCREEN); //获取屏幕分辨率:y
	//cout << "屏幕分辨率:" << cx <<" "<< cy << endl;

	获取qq窗口的句柄
	//qqhwnd = FindWindow(
	//	"TXGuiFoundation", //窗口类名称
	//	"QQ"               //窗口标题
	//);
	//cout << "QQ窗口的句柄ID: " << qqhwnd << endl;

	获取当前exe的路径      module模块  filename文件路径
	//char exepath[MAX_PATH] = {0};
	//GetModuleFileName(
	//	 NULL,                  //如果该参数为NULL,该函数返回该应用程序全路径
	//	 exepath,                  //指定一个字符串保存路径名     *****项目-》高级-》多字节字符串*****
	//	 MAX_PATH                  //字符串的最大字符数
	//);
	//cout << "当前的exe文件路径: " << exepath << endl;

	改变指定窗口的位置和大小
	//MoveWindow(
	//	 qqhwnd,  //需要移动的窗口句柄
	//	  0,0,       //int x,int y   窗口新的左上角坐标
	//	500,500,       //int width,int height  窗口新的高度和宽度 
	//	true           //bool repaint  是否重绘
	//);

	获取窗口的矩形范围
	//RECT rect;   //定义一个矩形
	//GetWindowRect(
	// qqhwnd,   //获取哪一个窗口
	// &rect    //保存范围的数据
	//);
	//cout << "QQ窗口的矩形范围:" << rect.left << " " << rect.top << " " << rect.right << " " << rect.bottom << endl;
	//
	获取光标的位置   cursor光标   position位置
	//POINT pt; //定义一个点
	//GetCursorPos(&pt);
	//
	system("pause");
	return 0;
}

程序打开后如果无法关闭,可以通过任务管理器关闭,或者重启电脑解决

猜你喜欢

转载自blog.csdn.net/m0_53157173/article/details/114019887