Exemple #1
0
        public void ChangeActiveProcess(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
        {
            Process pr = ChangingProcess.GetActiveProcess();


            if (FirstTime)
            {
                StartTime      = DateTime.Now;
                CurrentProgram = GetObservedProgramFromProcess(pr);
                FirstTime      = false;
                dT             = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 50), DispatcherPriority.Background,
                                                     t_Tick, Dispatcher.CurrentDispatcher);
                dT.IsEnabled = true;
            }
            else
            {
                PreviousProgram = CurrentProgram;
                TimeSpan ts = DateTime.Now - StartTime;
                PreviousProgram.AddTimeDuration(DateTime.Now - StartTime);
                ProgramsDataGrid.Items.Refresh();
                StartTime      = DateTime.Now;
                CurrentProgram = CurrentProgram = GetObservedProgramFromProcess(pr);
            }

            liveIcon.Source = CurrentProgram.IconSource;
            liveName.Text   = CurrentProgram.Name;
        }
Exemple #2
0
        public MainWindow()
        {
            InitializeComponent();
            ProgramsDataGrid = DataGridXAML;
            del = ChangeActiveProcess;


            eventH = ChangingProcess.SetWinEventHook(ChangingProcess.EVENT_SYSTEM_FOREGROUND,
                                                     ChangingProcess.EVENT_SYSTEM_FOREGROUND, (IntPtr)0,
                                                     del, 0, 0,
                                                     ChangingProcess.WINEVENT_OUTOFCONTEXT | ChangingProcess.WINEVENT_SKIPOWNPROCESS);
        }