/// <summary> /// 初始化 /// </summary> private void Loading() { #region 温馨提示 Service.Calendar calender = new Service.Calendar(DateTime.Now); string calendar = "农历:" + calender.ChineseDateString + "\r\n"; calendar += " 时辰:" + calender.ChineseHour + "\r\n"; calendar += " 属相:" + calender.AnimalString + "\r\n"; calendar += (calender.ChineseTwentyFourDay.Length > 0) ? " 节气:" + calender.ChineseTwentyFourDay + "\r\n" : ""; calendar += (calender.DateHoliday.Length > 0) ? " 节日:" + calender.DateHoliday + "\r\n" : ""; calendar += " 星座:" + calender.Constellation + "\r\n"; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { View.PopUP pop = new View.PopUP(); pop.Subject = ""; pop.Info = calendar; pop.PopTitle = "温馨提示!"; pop.Show(); })); #endregion #region 异步 //var action = new Action(() => //{ // //删除4天前日志文件 // Bll.SysLog taskLog = new Bll.SysLog(); // Helper.Instance.DropFiles(Log.LogPath, null, new string[] { ".txt", ".log" }, 4); // taskLog.DeleteHistory(); // this.Verson = "版本 V" + Helper.Instance.GetVersion(); //}); //action.BeginInvoke(ar => //{ // action.EndInvoke(ar); //}, null); #endregion //System.Threading.Tasks.Task.Factory.StartNew(() => //{ //}); Bll.SysLog taskLog = new Bll.SysLog(); Helper.Instance.DropFiles(Log.LogPath, null, new string[] { ".txt", ".log" }, 4);//删除4天前日志文件 taskLog.DeleteHistory(); this.Verson = "版本 V" + Helper.Instance.GetVersion(); Task.Instance.GetTaskList(true); Helper.Instance.CreateFolder(Log.LogPath); _xml = new XmlHelper(TimedTask.Model.PM.TaskConfig); TimedTask.Model.Area area = this._balWeather.GetCurrentArea(); if (area != null) { AsyncWeather(area.Name); } }
/// <summary> /// 开始提醒 /// </summary> /// <param name="taskType">任务类别</param> /// <param name="title">标题</param> /// <param name="remark">任务说明</param> /// <param name="audioName">声音名称</param> /// <param name="isTest">是否测试,测试时不会关机</param> /// <returns></returns> public bool StartWarn(AutoTask model, bool isTest) { bool result = true; string tmp = ""; string command = ""; Entity.TaskLog modLog = new TaskLog(); modLog.TaskId = model.Id; modLog.TaskType = model.TaskType; modLog.TimeType = model.TimeType; modLog.IsRun = "1"; modLog.Title = model.Title; modLog.CreateDate = DateTime.Now; #region 关机/显示器/锁屏 if (model.TaskType == ((Int32)TaskType.Shutdown).ToString())//关机 { tmp = "系统将于60秒后关闭,此操作不能撤销,请保存好您的工作!"; command = "shutdown -s -t 60"; //Common.HookHelper hook = new Common.HookHelper(); //hook.HookStart();//安装钩子 } else if (model.TaskType == ((Int32)TaskType.TurnOffMonitor).ToString())//关闭显示器 { Helper.CloseMonitor(); this._dalTaskLog.Add(modLog); return(true); } else if (model.TaskType == ((Int32)TaskType.TurnOnMonitor).ToString())// { Helper.OpenMonitor(); this._dalTaskLog.Add(modLog); return(true); } else if (model.TaskType == ((Int32)TaskType.LockMonitor).ToString())//锁屏 { if (!Entity.App.IsLockScreen) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { View.LockScreen lockScreen = new View.LockScreen(); lockScreen.IsTest = isTest; lockScreen.PointText = model.Remark.Contains("⊙") ? model.Remark.Split('⊙')[1] : model.Remark; lockScreen.ShowDialog(); })); } this._dalTaskLog.Add(modLog); return(true); } #endregion #region POP提醒 try { if (model.AudioEnable == "1") { Thread t = new Thread(new ThreadStart(() => { Helper.PalyAudio(model.AudioPath, model.AudioVolume); })); t.IsBackground = true; t.Start(); } System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { View.PopUP pop = new View.PopUP(); if (model.Remark.Contains(Entity.App.SpiderChar)) { pop.Subject = model.Remark.Split(Entity.App.SpiderChar)[0]; pop.Info = model.Remark.Split(Entity.App.SpiderChar)[1] + tmp; } else { pop.Subject = model.Remark + tmp; } pop.PopTitle = model.Title; pop.Show(); })); } catch (Exception ex) { Log.SaveLog("Task StartWarn", ex.ToString()); result = false; modLog.IsRun = "0"; } #endregion if (!isTest) { Helper.Speek(tmp); Helper.Run(command); } this._dalTaskLog.Add(modLog); return(result); }
/// <summary> /// 开始提醒 /// </summary> /// <param name="taskType">任务类别</param> /// <param name="title">标题</param> /// <param name="remark">任务说明</param> /// <param name="audioName">声音名称</param> /// <param name="isTest">是否测试,测试关机时只提醒不关机</param> /// <returns></returns> public bool StartWarn(AutoTask model, bool isTest) { bool result = true; string msg = ""; string command = ""; bool isShutdown = false;//是否关机 TimedTask.Model.SysLog modLog = new TimedTask.Model.SysLog(); modLog.TaskId = model.Id; modLog.TaskType = model.TaskType; modLog.RunType = model.RunType; modLog.IsRun = "1"; modLog.Title = model.Title; modLog.CreateDate = DateTime.Now; #region 关机/显示器/锁屏 if (model.TaskType == ((Int32)TaskType.Shutdown).ToString())//关机 { msg = "系统将于 120 秒后关闭,此操作不能撤销,请保存好您的工作!"; command = "shutdown -s -t 120"; isShutdown = true; } else if (model.TaskType == ((Int32)TaskType.TurnOffMonitor).ToString())//关闭显示器 { Helper.Instance.CloseMonitor(); this._bllLog.Add(modLog); return(true); } else if (model.TaskType == ((Int32)TaskType.TurnOnMonitor).ToString())//打开显示器 { Helper.Instance.OpenMonitor(); this._bllLog.Add(modLog); return(true); } else if (model.TaskType == ((Int32)TaskType.LockMonitor).ToString())//锁屏 { if (!TimedTask.Model.PM.IsScreenLock) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { View.ScreenLock lockScreen = new View.ScreenLock(); lockScreen.IsTest = isTest; lockScreen.PointText = model.Remark.Contains("⊙") ? model.Remark.Split('⊙')[1] : model.Remark; lockScreen.ShowDialog(); })); } this._bllLog.Add(modLog); return(true); } #endregion #region 声音 POP提醒 try { if (model.AudioEnable == null) { model.AudioEnable = "0"; } if (model.AudioEnable == "1" || model.AudioEnable.Equals("True", StringComparison.CurrentCultureIgnoreCase)) { //创建异步线程 System.Threading.Tasks.Task.Factory.StartNew(() => { Helper.Instance.PalyAudio(model.AudioPath, model.AudioVolume); }); } if (!isShutdown) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { View.PopUP pop = new View.PopUP(); if (model.Remark.Contains(TimedTask.Model.PM.SpiderChar)) { pop.Subject = model.Remark.Split(TimedTask.Model.PM.SpiderChar)[0]; pop.Info = model.Remark.Split(TimedTask.Model.PM.SpiderChar)[1] + msg; } else { pop.Subject = model.Remark + msg; } pop.PopTitle = model.Title; pop.Show(); })); } } catch (Exception ex) { Log.SaveLog("Task StartWarn", ex.ToString()); result = false; modLog.IsRun = "0"; } #endregion #region 关机 if (!isTest) { MainWindow.TaskIcon.ShowBalloonTip("温馨提示", msg, Hardcodet.Wpf.TaskbarNotification.BalloonIcon.Info); Helper.Instance.Run(command); } #endregion this._bllLog.Add(modLog); return(result); }