コード例 #1
0
ファイル: Form1.cs プロジェクト: Gidsik/ProcessTimeChecker
        public Form1()
        {
            InitializeComponent();

            thread = new Thread(
                () => {
                while (true)
                {
                    if (ProcessesCheck())
                    {
                        DateTime start = PS.StartTime;
                        DateTime end;
                        Action action = () => {
                            label1.Text = PS.ProcessName;
                            label2.Text = PS.StartTime.ToString();
                            if (PS.HasExited)
                            {
                                end          = System.DateTime.Now;
                                label3.Text  = end.ToString();
                                TimeSpan dt2 = end - start;
                                label4.Text  = dt2.ToString();
                                MessageBox.Show(pc.closed.ToString());
                            }
                        };
                        label1.Invoke(action);
                    }
                    Thread.Sleep(100);
                }
            }
                );
            //thread.Start();
            ProcessStartWatching();
            ProcessInfoWatcher.RunningProcesses();
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Gidsik/ProcessTimeChecker
        void ProcessStartWatching()
        {
            ProcessInfoWatcher watcher = new ProcessInfoWatcher("notepad++.exe");

            watcher.Started += (object sender, EventArrivedEventArgs e) =>
            {
                ManagementBaseObject targetInstanse = (ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value;
                int     pid     = Int32.Parse((string)targetInstanse.Properties["Handle"].Value);
                Process process = Process.GetProcessById(pid);
                Debug.WriteLine(DateTime.Now.ToLocalTime() + " " + process.ProcessName);
            };
            watcher.Terminated += (object sender, EventArrivedEventArgs e) =>
            {
                ManagementBaseObject targetInstanse = (ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value;
                int pid = Int32.Parse((string)targetInstanse.Properties["Handle"].Value);
                Debug.WriteLine(DateTime.Now.ToLocalTime() + " " + pid.ToString());
            };
        }