Code Log

プログラミングの勉強メモを残していきます。

C# Process名指定でプロセスの稼働時間やIDを取得。一定時間以上稼働しているものをkillする。


スポンサーリンク

f:id:sho322:20151129235553j:plain

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace TimerExample2
{
    public partial class Form1 : Form
    {
        bool isRun = false;
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (isRun)
            {
                string processName = textBox1.Text;
                Process[] processlist = Process.GetProcessesByName(processName);
                StringBuilder sb = new StringBuilder();
                foreach (Process process in processlist)
                {
                    DateTime startTime = process.StartTime;
                    TimeSpan runTime = DateTime.Now - startTime;

                    var limitAddTime = 1;
                    DateTime limitTime = process.StartTime.AddMinutes(limitAddTime);

                    sb.Append("[ID:" + process.Id + "]" + process.ProcessName + "[稼働時間:" + runTime.Hours + ":" + runTime.Minutes + runTime.Seconds
                         + "][制限時間:" + limitTime + "]" + System.Environment.NewLine);
                    var limitTimeOfDay = limitTime.TimeOfDay;
                    if ((limitTimeOfDay - startTime.TimeOfDay) < runTime)
                    {
                        process.Kill();
                    }
                }

                label1.Text = sb.ToString();
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            isRun = true;
            timer1.Enabled = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            isRun = false;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
    }
}

猫でもわかるC#プログラミング 第2版 (猫でもわかるシリーズ)

猫でもわかるC#プログラミング 第2版 (猫でもわかるシリーズ)