键鼠无动作关闭显示器、定时关机小工具V2.0 仅8kb
本帖最后由 sgbyg 于 2023-7-15 20:13 编辑https://pic.imgdb.cn/item/64b235441ddac507ccce9414.gif
参考 https://attach.52pojie.cn/forum/202307/15/082006h38kkk31labzlobl.png 这个写的
下载 ---> https://wwng.lanzoub.com/iTKtG12kaarg解压密码:52pj
https://pic.imgdb.cn/item/64b252f31ddac507cc40fbf3.png
看到有问源码的 这是关键源码
// 定时器函数 我设置了每1000毫秒执行一次
private static void CheckIdleTime(object sender, EventArgs e) {
// 获取上次输入时间
LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
GetLastInputInfo(ref lastInputInfo);
// 计算得到空闲时间
TimeSpan idleTime = TimeSpan.FromMilliseconds(Environment.TickCount - lastInputInfo.dwTime);
// 更新标题栏
form.Text = idleTime.ToString(@"hh\:mm\:ss") + " " + "By: sgbyg";
// 关闭显示器任务
if (btn1_flag) {
double seconds = idleTime.TotalSeconds;
int result = num1 - Convert.ToInt32(seconds);
// 倒计时显示到输入框
textBox.Text = result.ToString();
// 如果空闲时间超过指定时间
int minutes;
if (int.TryParse(textBox.Text, out minutes) && idleTime.TotalMinutes >= minutes) {
// 关闭显示器
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
// 初始化
btn1_flag = false;
button.Text = "开始";
textBox.ReadOnly = false;
textBox.Text = "";
}
}
// 关机任务
if (btn2_flag) {
// 获取选定的小时和分钟
int hour = int.Parse(cbxHour.SelectedItem.ToString());
int minute = int.Parse(cbxMinute.SelectedItem.ToString());
DateTime shutdownTime = DateTime.Today.AddHours(hour).AddMinutes(minute);
// 计算关机时间
if (DateTime.Now > shutdownTime) {
Process.Start("shutdown", "/s /t 0");
}
}
}
wd12826 发表于 2023-7-15 14:35
不能最小化
加了一个最小化版 sxan8249 发表于 2024-10-3 10:38
有一个疑问,键鼠无操作关闭显示器,希望能一直循环,现在设置一次以后就失效了,需要重复设置
加个是否循环的功能就好了 但最近工作忙 没空写代码 不错不错,可以控制QQ自动聊天吗? 公司电脑比装 不能最小化 有源码吗?想学习一下 感谢你的制作, 感谢楼主分享 感谢楼主分享,不用再搞定时任务了,很方便{:1_893:} 爱了,都是我常用的