sgbyg 发表于 2023-7-15 14:00

键鼠无动作关闭显示器、定时关机小工具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");
                }
        }
       
}

sgbyg 发表于 2023-7-15 14:43

wd12826 发表于 2023-7-15 14:35
不能最小化

加了一个最小化版

sgbyg 发表于 2024-10-3 14:28

sxan8249 发表于 2024-10-3 10:38
有一个疑问,键鼠无操作关闭显示器,希望能一直循环,现在设置一次以后就失效了,需要重复设置

加个是否循环的功能就好了 但最近工作忙 没空写代码

xkh5823 发表于 2023-7-17 10:24

wjqok 发表于 2023-7-15 14:24

不错不错,可以控制QQ自动聊天吗?

SmileInMemory 发表于 2023-7-15 14:25

公司电脑比装

wd12826 发表于 2023-7-15 14:35

不能最小化

woaicrack 发表于 2023-7-15 14:50

有源码吗?想学习一下

laoxiao 发表于 2023-7-15 14:52

感谢你的制作,

haihua301 发表于 2023-7-15 14:56

感谢楼主分享

BoneBoneG 发表于 2023-7-15 15:27

感谢楼主分享,不用再搞定时任务了,很方便{:1_893:}

lichees 发表于 2023-7-15 15:36

爱了,都是我常用的
页: [1] 2 3 4 5 6 7
查看完整版本: 键鼠无动作关闭显示器、定时关机小工具V2.0 仅8kb