簡體   English   中英

Windows 10:如何確定進程是否為應用程序/背景進程/ Windows進程

[英]Windows 10: How to determine whether a process is an App/Background Process/Windows Process

以編程方式,我如何確定Windows 10中的3個類別

  • 應用
  • 后台流程
  • Windows服務

就像任務管理器一樣?

即我需要一些C#代碼,可以確定應用程序列表還是后台進程列表。 在Win32_process中檢查executionState不起作用。 它始終為空。

謝謝!

在此處輸入圖片說明

原來的問題:

  • 如何檢測正在運行的應用程序列表?

對於解決方案,我有不同的看法:

某些UWP應用具有主窗口標題。 檢查主窗口標題還不足以表明應用程序正在運行。

處於掛起狀態的UWP應用仍將返回標題(請參見紅色矩形)

在此處輸入圖片說明

因此,為了檢測暫停狀態,我們需要

  1. 應用具有標題,但未在前台運行
  2. 應用具有標題,但未在后台運行

{碼}

static void byProcess()
    {
        Process[] processes = Process.GetProcesses();
        List<string> suspendedAppsWhichHasTitle = new List<string>();

        foreach (var proc in processes)
        {
            // if it has main window title
            if (!string.IsNullOrEmpty(proc.MainWindowTitle))
            {
                // the app may be in suspend state 
                foreach (ProcessThread pT in proc.Threads)
                {
                    ThreadState ts = pT.ThreadState;
                    if (ts == ThreadState.Running)
                    {
                        suspendedAppsWhichHasTitle.Add(proc.MainWindowTitle);
                    }
                }                    
            }
        }

        foreach(string app in suspendedAppsWhichHasTitle)
        {
            Console.WriteLine(app);
        }

        if (suspendedAppsWhichHasTitle.Count == 0)
        {
            Console.WriteLine("No visible app is running!");
        }
        Console.Read();
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM