当前位置 博文首页 > xxzcool的博客:C++设置“长时间未动鼠标则自动关机”

    xxzcool的博客:C++设置“长时间未动鼠标则自动关机”

    作者:[db:作者] 时间:2021-09-19 10:22

    该程序的作用是当长时间没有动鼠标将自动关机,你可以将编译后的程序放在开机启动项里,不知道怎么操作的可以看一下我的另一篇文章《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;
    }

    cs