?? mousekeyboardsensor.cs
字號:
?namespace Imps.Client.Pc.Sensor
{
using Imps.Client.Pc;
using Imps.Client.Pc.BizControls;
using Imps.Common;
using System;
using System.Runtime.InteropServices;
internal class MouseKeyboardSensor : PresenceSensorBase, IDisposable
{
private int _tickCountMainWnd;
private int _tickCountMouseOrKeyboard;
private bool disposed;
public MouseKeyboardSensor(IFrameworkWindow frameworkWnd) : base(frameworkWnd)
{
base.MainForm.VisibleChanged += new EventHandler(this.MainForm_VisibleChanged);
base.MainForm.Activated += new EventHandler(this.MainForm_VisibleChanged);
}
private void CheckSensors()
{
win32api_wrapper.LASTINPUTINFO lii = new win32api_wrapper.LASTINPUTINFO();
lii.cbSize = Marshal.SizeOf(lii.GetType());
lii.dwTime = 0;
if (win32api_wrapper.GetLastInputInfo(ref lii))
{
int num2 = (int) (win32api_wrapper.GetTickCount() - lii.dwTime);
int num3 = base.ImpsConfig.UserSetting.SensorSetting.OfflineOnIdle.Value ? base.ImpsConfig.UserSetting.SensorSetting.OfflineOnIdleHours.Value : 0;
int num4 = base.ImpsConfig.UserSetting.SensorSetting.AwayOnIdle.Value ? base.ImpsConfig.UserSetting.SensorSetting.AwayOnIdleMinutes.Value : 0;
if ((num3 > 0) && (num2 > (num3 * 0x36ee80)))
{
base.PresenseValue = MainPresence.Offline;
}
else if ((num4 > 0) && (num2 > (num4 * 0xea60)))
{
base.PresenseValue = MainPresence.Away;
}
else
{
base.PresenseValue = MainPresence.Online;
}
}
}
public void Dispose()
{
bool disposed = this.disposed;
this.disposed = true;
}
~MouseKeyboardSensor()
{
this.Dispose();
}
private void MainForm_VisibleChanged(object sender, EventArgs e)
{
try
{
if (base.MainForm.Visible)
{
this._tickCountMainWnd = Environment.TickCount;
}
}
catch
{
}
}
public override bool Poll()
{
this.CheckSensors();
return base.Poll();
}
public override void Reset()
{
this._tickCountMouseOrKeyboard = Environment.TickCount;
this._tickCountMainWnd = this._tickCountMouseOrKeyboard;
base.Reset();
}
public bool ShouldHideMainWindows()
{
int num = base.ImpsConfig.UserSetting.MainWindowSetting.AutoHide ? base.ImpsConfig.UserSetting.MainWindowSetting.AutoHideSeconds : 0;
return ((num > 0) && ((Environment.TickCount - this._tickCountMainWnd) > (num * 0x3e8)));
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -