Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }