【发布时间】:2017-04-07 13:27:08
【问题描述】:
这是我的 C# 应用程序的完整代码,目标很简单。我想检索系统上打开的窗口,按照它们最近打开的方式排序,就像在 Alt-Tab 列表中一样。 Alt-Tab 列表列出了上次打开的程序,因此按 Alt-Tab 并仅释放一次将带您回到您打开的最后一个窗口。此代码适用于 Windows 10。下面的代码确实获得了我需要的信息,只是顺序不正确。我应该在哪里寻找我需要的信息?
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace GetOpenWindowName
{
class Program
{
static void Main(string[] args)
{
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
Console.WriteLine("Process: {0} ID: {1} Window title: {2}", process.ProcessName, process.Id, process.MainWindowTitle);
}
}
Console.ReadLine();
}
}
}
【问题讨论】:
-
此信息不可用。您必须自己监控窗口激活。
-
@PaulF 这可能会很有帮助,谢谢。
-
相关(从 2003 年开始)-What is the Alt+Tab order?
-
Z-order 不一定反映激活顺序。具有
WS_EX_TOPMOST扩展窗口样式的窗口将破坏 Z 顺序和激活历史记录之间的关系。
标签: c# windows windows-10 system.diagnostics