Exemplo n.º 1
0
        public DataDumper(AppMonitor AppMonitor, DB Database, int DumpInterval = 60)
        {
            _appMonitor = AppMonitor;
            _database   = Database;

            _dumpInterval = DumpInterval;
            _started      = false;
        }
Exemplo n.º 2
0
        void FormLoaded(object sender, RoutedEventArgs e)
        {
            monitor = new(Dispatcher);
            appsTree.Applications    = monitor.SortedData as CollectionView;
            CurrentApp.DataContext   = monitor;
            monitor.PropertyChanged += _monitor_PropertyChanged;

            new SettingsProvider().RunAutoExport(monitor);
        }
        private void ApplicationGrid_StartClick(object sender, RoutedEventArgs e)
        {
            MonitoredApp monitoredApp = ((FrameworkElement)sender).DataContext as MonitoredApp;

            StartApplication(monitoredApp);

            if (!AppMonitor.IsEnabled)
            {
                AppMonitor.Start();
            }
        }
Exemplo n.º 4
0
        public AppTrayIconContext()
        {
            //Initialize Objects
            AppSettings = new SettingsManager.Settings();

            // Check if Runs Hidden
            if (!AppSettings.RunHidden)
            {
                //Build Menu
                ContextMenu mnu = new ContextMenu();

                mnu.MenuItems.Add(new MenuItem(ResFiles.GlobalRes.traymenu_Activity, OpenStats));

                if (!AppSettings.LockSettings)
                {
                    mnu.MenuItems.Add(new MenuItem(ResFiles.GlobalRes.traymenu_Settings, OpenSettings));
                }

                if (!AppSettings.HideMenuExit)
                {
                    mnu.MenuItems.Add(new MenuItem(ResFiles.GlobalRes.traymenu_Exit, Exit));
                }

                mnu.MenuItems.Add(new MenuItem(ResFiles.GlobalRes.traymenu_About, About));


                trayIcon = new NotifyIcon()
                {
                    Icon        = Resources.ClockIcon,
                    ContextMenu = mnu,
                    Visible     = true
                };

                trayIcon.DoubleClick += new System.EventHandler(OpenStats);
                AppDomain.CurrentDomain.ProcessExit += new System.EventHandler(Exit);
            }

            usrSession = new UserSession();
            appMon     = new AppMonitor();

            Database = new DB();

            DBDumper = new DataDumper(appMon, Database, AppSettings.DBDumprate);

            appMon.Start();

            //TODO: Start DB dumper anyway
            if (setDBConfig())
            {
                DBDumper.Start();
            }
        }
Exemplo n.º 5
0
        public FormActivity(AppMonitor AppMonitor)
        {
            InitializeComponent();

            _appMon = AppMonitor;

            _idleCtl = new ApplicationView(_appMon);
            _idleCtl.ApplicationText = ResFiles.GlobalRes.caption_IdleTime;
            _idleCtl.Icon            = Resources.IdleIcon.ToBitmap();
            flApplicationsUsage.Controls.Add(_idleCtl);
            flApplicationsUsage.SetFlowBreak(_idleCtl, true);
            ResizeControls();
            updateView();
        }
Exemplo n.º 6
0
    public static void Run(AppInfo[] apps)
    {
        bool showAllOnExit = true;

        var notifyIcon = new NotifyIcon();
        var menuStrip  = new ContextMenuStrip();

        var configMenu  = new ToolStripMenuItem("Config", null, (s, e) => Process.Start(Assembly.GetExecutingAssembly().Location.GetDirName()));
        var showAllMenu = new ToolStripMenuItem("Show All", null, (s, e) => apps.ForEach(app => app.PreloadedInstance.ShowAndRestore()));
        var newMenu     = new ToolStripMenuItem("<New>", null, (s, e) => AppMonitor.New());
        var restartMenu = new ToolStripMenuItem("Restart", null, (s, e) => { Application.Restart(); showAllOnExit = false; });
        var exitMenu    = new ToolStripMenuItem("Exit", null, (s, e) => Application.Exit());

        bool captured = false;

        void update_tray_icon()
        {
            bool new_captured = apps.Any(x => x.PreloadedInstance.IsValid());

            if (new_captured != captured)
            {
                notifyIcon.Icon = new_captured ? StartApp.Properties.Resources.appActive : StartApp.Properties.Resources.app_icon;
            }
            captured = new_captured;
        }

        notifyIcon.ContextMenuStrip          = menuStrip;
        notifyIcon.Icon                      = StartApp.Properties.Resources.app_icon;
        notifyIcon.Text                      = "App instant start";
        notifyIcon.DoubleClick              += (s, e) => apps.ForEach(app => app.PreloadedInstance.ShowAndRestore());
        notifyIcon.ContextMenuStrip.Opening += (s, e) => notifyIconMenuVisible = true;
        notifyIcon.ContextMenuStrip.Closed  += (s, e) => notifyIconMenuVisible = false;

        menuStrip.Items.Add(configMenu);
        menuStrip.Items.Add(newMenu);
        menuStrip.Items.Add("-");
        foreach (var app in apps)
        {
            var appMenu = new ToolStripMenuItem(app.Name);
            appMenu.Enabled = app.Enabled;
            appMenu.Click  += (s, e) =>
            {
                AppLauncher.FindHotInstance(app); //just in case if it was not found before
                if (app.PreloadedInstance.IsValid())
                {
                    app.PreloadedInstance.ShowAndRestore();
                }
                else
                {
                    "Notepad.exe".StartWith(Assembly.GetExecutingAssembly().Location.GetDirName().PathJoin(app.ConfigName));
                }
            };

            menuStrip.Items.Add(appMenu);

            app.OnCaptured = () =>
            {
                if (app.PreloadedInstance.IsValid())
                {
                    appMenu.Text = "> " + app.Name;
                }
                else
                {
                    appMenu.Text = app.Name;
                }

                lock (typeof(AppLauncher))
                    update_tray_icon();
            };
        }

        menuStrip.Items.Add("-");
        menuStrip.Items.Add(showAllMenu);
        menuStrip.Items.Add("-");
        menuStrip.Items.Add(restartMenu);
        menuStrip.Items.Add("-");
        menuStrip.Items.Add(exitMenu);

        notifyIcon.Visible = true;

        var timer = new Timer();

        timer.Interval = 5000;
        timer.Tick    += (s, e) =>
        {
            if (!notifyIconMenuVisible)
            {
                AppLauncher.StartCheckForHotInstance(apps);
            }
        };
        timer.Enabled = true;

        Application.Run();

        timer.Enabled      = false;
        notifyIcon.Visible = false;

        if (showAllOnExit)
        {
            apps.Where(app => app.Enabled)
            .ForEach(app => app.PreloadedInstance.ShowAndRestore());
        }
    }