C++设置“长时间未动鼠标则自动关机”

该程序的作用是当长时间没有动鼠标将自动关机,你可以将编译后的程序放在开机启动项里,不知道怎么操作的可以看一下我的另一篇文章《Windows如何设置开机自启》

首先我们需要用到鼠标检测函数GetCursorPos()

POINT p;
int x,y;//定义变量
while(1){
    GetCursorPos(&p);//将鼠标所在位置存在p中
    //x=鼠标x轴
    //y=鼠标y轴
}

KEY_DOWN():检测鼠标按键,按下返回true,未按下返回false

KEY_DOWN(VK_LBUTTON)检测鼠标左键
KEY_DOWN(MOUSE_EVENT)

检测鼠标右键

KEY_DOWN(MOUSE_WHEELED)检测鼠标滚轮键(非滚轮)

完整代码如下:

#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
POINT p;
int x,y;
int main(){
	ShowWindow(GetForegroundWindow(),0);//隐藏窗口 
	int time=0; 
	while(1){
		GetCursorPos(&p);
		if(p.x!=x||p.y!=y||KEY_DOWN(VK_LBUTTON)||KEY_DOWN(MOUSE_EVENT)||KEY_DOWN(MOUSE_WHEELED)){
			time=0;//如果鼠标有动作时间设为0 
			x=p.x;//更新xy坐标值 
			y=p.y;
		}
		if(time>=1800){
			system("shutdown -s -t 30");//定30秒后关机 
			int v;
			v=MessageBox(NULL,"您已半小时没有做任何鼠标操作,为节约电量即将在30秒后关机","节电小助手",MB_ICONEXCLAMATION|MB_YESNO);//弹出提示框 
			if(v==7){//如果按下否
				system("shutdown -a");//取消关机 
			}
		}
		Sleep(100);
		time+=0.1; 
	}
	return 0;
}


版权声明:本文为xxzcool原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。