0
編程,我怎樣才能確定3個類別中的Windows 10視窗10:如何確定進程是否是一個應用程序/後臺進程/ Windows進程
- 應用
- 後臺進程
- Windows服務
就像任務管理器?
即我需要一些C#代碼,我可以確定應用程序列表與後臺進程列表。在Win32_process中檢查executionState不起作用。它始終爲空。
謝謝!
編程,我怎樣才能確定3個類別中的Windows 10視窗10:如何確定進程是否是一個應用程序/後臺進程/ Windows進程
就像任務管理器?
即我需要一些C#代碼,我可以確定應用程序列表與後臺進程列表。在Win32_process中檢查executionState不起作用。它始終爲空。
謝謝!
原題:
我有一個關於解決不同的看法:
一些UWP應用具有主窗口標題。 檢查主窗口標題不足以說明該應用程序正在運行或沒有運行。在暫停狀態仍然會返回標題(見紅色矩形)
所以爲了檢測暫停狀態
UWP應用,我們需要覆蓋
{}代碼
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();
}
}
獲取後臺進程是比較容易的,但其餘的是大量的工作。這真的是3個問題之一,並且你沒有表現出解決任何問題的任何努力。 –
我試圖使用if(null!= System.Diagnostics.Process.MainWindowTitle)來確定應用程序是否在後臺。然而,它不是它的意思,例如即使我關閉了應用程序,Windows.Mobile.Store(Win10)也將處於掛起狀態 - 後臺進程,並且MainWindowTitle不會爲空。因此不是我想要的結果。 也試過Win32_Process。沒有一個屬性表明該過程是否爲背景。 我只需要區分應用程序與後臺進程。少關心Windows服務。 感謝您的意見和觀察。 – simonso
在WinAPI中,要找到這些應用程序,您可以使用'EnumWindows',然後檢查是否可見窗口,檢查窗口是否爲「alt-tab」窗口,確保窗口不隱藏Windows 10應用程序。 –