예제 #1
0
파일: Program.cs 프로젝트: stickh/v2rayP
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Helper.SetAllowUnsafeHeaderParsing(true);

            string firstArgument = args.Length > 0 ? args[0] : String.Empty;

            if (firstArgument == "--enable-autostart")
            {
                AutoStart.SetAutoStart(true);
                return;
            }
            else if (firstArgument == "--disable-autostart")
            {
                AutoStart.SetAutoStart(false);
                return;
            }

            var createdNew = true;
            var mutexName  = Setting.AppName + ":" + Application.StartupPath.GetHashCode();

            using (var mutex = new Mutex(true, mutexName, out createdNew))
            {
                if (!createdNew)
                {
                    MsgBox.Info(string.Format(I18n.MsgInstanceExist, Setting.AppName));
                    return;
                }

                Launcher.Start();
            }
        }
예제 #2
0
        public void AutoStartTest()
        {
            string location = System.Reflection.Assembly.GetExecutingAssembly().Location;

            AutoStart.SetAutoStart(location);
            Assert.IsTrue(AutoStart.IsAutoStartEnabled(location));

            AutoStart.UnSetAutoStart(location);
            Assert.IsFalse(AutoStart.IsAutoStartEnabled(location));
        }
예제 #3
0
        private MainHandler()
        {
            if (Settings.Default.ClickedAnswers == null)
            {
                Settings.Default.ClickedAnswers = new StringCollection();
            }
            if (Settings.Default.ShowedAnswers == null)
            {
                Settings.Default.ShowedAnswers = new StringCollection();
            }

            switch (DateTime.Now.DayOfWeek)
            {
            case DayOfWeek.Sunday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactSunday;
                break;

            case DayOfWeek.Monday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactMonday;
                break;

            case DayOfWeek.Tuesday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactTuesday;
                break;

            case DayOfWeek.Wednesday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactWednesday;
                break;

            case DayOfWeek.Thursday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactThursday;
                break;

            case DayOfWeek.Friday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactFriday;
                break;

            case DayOfWeek.Saturday:
                _notifyIcon.BalloonTipText = Resources.SkeetFactSaturday;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            _notifyIcon.ShowBalloonTip(1000);

            var contextMenu = new ContextMenuStrip {
                ShowImageMargin = false
            };

            var exitMenuItem = new ToolStripButton("Close")
            {
                Image = Resources.Exit, AutoToolTip = false
            };

            exitMenuItem.Click += (s, a) => System.Windows.Forms.Application.Exit();

            var refreshMenuItem = new ToolStripButton("Refresh")
            {
                Image = Resources.Refresh, AutoToolTip = false
            };

            refreshMenuItem.Click += (s, a) => _backgroundWorker.RunWorker();

            var autostartMenuItem = new ToolStripButton("Autostart")
            {
                Image = Resources.AutoStart, AutoToolTip = false, Checked = AutoStart.GetAutoStart(Application.ProductName)
            };

            autostartMenuItem.Click += (s, a) =>
            {
                AutoStart.SetAutoStart(!autostartMenuItem.Checked, Application.ProductName, Application.ExecutablePath);
                autostartMenuItem.Checked = AutoStart.GetAutoStart(Application.ProductName);
            };

            _notifyIcon.ContextMenuStrip = contextMenu;

            contextMenu.Items.AddRange(new ToolStripItem[] { new ToolStripSeparator(), refreshMenuItem, autostartMenuItem, exitMenuItem });

            // Timer
            _updateTimer.Tick += (s, a) => _backgroundWorker.RunWorker();

            // Worker
            _backgroundWorker.DoWork             += BackgroundWorkerDoWork;
            _backgroundWorker.RunWorkerCompleted += BackgroundWorkerRunWorkerCompleted;
            _backgroundWorker.RunWorker();
        }