123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using Microsoft.Win32;
- using System.Threading;
- using System.Windows.Forms;
- using TurnoffMonitorOnLock.IconExtract;
- using TurnoffMonitorOnLock.MonitorPowerApi;
- namespace TurnoffMonitorOnLock
- {
- public partial class MainForm : Form
- {
- private bool _keepOff = false;
- public MainForm()
- {
- InitializeComponent();
- var eIcon = IconExtractor.GetMainIcon();
- if (null != eIcon)
- {
- Icon = eIcon;
- MinisizeToTray.Icon = eIcon;
- }
- SystemEvents.SessionSwitch += delegate (object o, SessionSwitchEventArgs args)
- {
- if (args.Reason == SessionSwitchReason.SessionLock)
- {
- Thread.Sleep(1500);
- MonitorPower.SetMonitorInState(MonitorState.MonitorStateOff);
- _keepOff = true;
- new Thread(() =>
- {
- while (_keepOff)
- {
- Thread.Sleep(1000 * 10);
- if (!_keepOff) break;
- MonitorPower.SetMonitorInState(MonitorState.MonitorStateOff);
- }
- }).Start();
- }
- else
- {
- _keepOff = false;
- }
- };
- }
- private void MainForm_Shown(object sender, System.EventArgs e)
- {
- if (Program.CommandLineArgs.Count != 0) WindowState = FormWindowState.Minimized;
- }
- private void MainForm_Resize(object sender, System.EventArgs e)
- {
- if (WindowState != FormWindowState.Minimized) return;
- Hide();
- MinisizeToTray.Visible = true;
- MinisizeToTray.ShowBalloonTip(5000, Text, "Im here", ToolTipIcon.Info);
- }
- private void MinisizeToTray_Click(object sender, System.EventArgs e)
- {
- MinisizeToTray.Visible = false;
- Show();
- WindowState = FormWindowState.Normal;
- }
- }
- }
|