集中力を高めるツール?


using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

public class ProcessGuillotine
{
    // ホワイトリスト:これらは殺さない
    private readonly HashSet<string> allowed_apps = new() 
    { 
        "devenv", "code", "unity", "chrome", "msedge", "explorer", "state_zero" 
    };

    // 重要なシステムプロセスを誤って殺さないためのブラックリスト(保護対象)
    private readonly HashSet<string> system_protected = new() 
    { 
        "svchost", "csrss", "wininit", "services", "lsass", "winlogon" 
    };

    private bool is_active = false;
    private Queue<string> kill_log = new Queue<string>();

    public async Task start_monitoring_async(CancellationToken token)
    {
        is_active = true;
        
        while (!token.IsCancellationRequested && is_active)
        {
            await check_and_purge_processes();
            // 負荷軽減のため少し待機
            await Task.Delay(1000, token);
        }
    }

    private async Task check_and_purge_processes()
    {
        // 現在の全プロセスを取得
        var current_processes = Process.GetProcesses();

        foreach (var p in current_processes)
        {
            try 
            {
                var name = p.ProcessName.ToLower();

                // 1. システムプロセスは無視
                if (system_protected.Contains(name)) continue;

                // 2. ホワイトリストにあるか?
                if (allowed_apps.Contains(name)) continue;

                // 3. 許可されていないプロセスは終了させる
                // ここで慈悲なくKillする
                p.Kill();
                
                var log_msg = $"[Purged] {name} (ID: {p.Id})";
                kill_log.Enqueue(log_msg);
                
                // ログがあふれないように制御
                if (kill_log.Count > 100) kill_log.Dequeue();

                Debug.WriteLine(log_msg);
            }
            catch (Exception e)
            {
                // アクセス権限がないプロセスなどはスキップ
                continue;
            }
        }
        await Task.CompletedTask;
    }
}

いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
小ぶりなプログラムを試しに作っているんですが、 ここではその説明書きをしていこうと思います。 こういう機能をつけてみてほしいだとかいった要望があれば コメント欄に書いてみて下さい。 ひまをみて対応します。
集中力を高めるツール?|古井和雄
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1