当前位置 博文首页 > xxzcool的博客: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;
}
cs