如何从C#中找到Windows通用应用程序窗口

Dwz*_*wza 2 c# uwp

我想编写自己的程序,让我选择所有打开窗口的一个窗口,并将此窗口的状态设置为TOP,这样所选窗口将始终显示在顶部!

问题...因为Windows 8有APP,实际上这个过程出现在进程资源管理器中,但是我选择的工具没有列出它.(就像没有app)

我的来源看起来像:

private void refreshWindowList(object sender, EventArgs e)
{
    windowList.Items.Clear();

    foreach (Process p in Process.GetProcesses().Where(pp => pp.MainWindowHandle != IntPtr.Zero && pp.ProcessName != "explorer"))
    {
        windowList.Items.Add(p.ProcessName);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我打开组合框并且每次查看列表时实际刷新项目时,都会调用此函数.

我找到了正常的程序,但有没有办法找到Win 8/10应用程序?

编辑澄清:可以找到像记事本这样的正常过程.但是,像netflix这样的Windows Universal应用程序却无法实现.至少我不知道如何找到它们.

use*_*702 5

一些应用程序,例如Netflix,是使用HTML和JavaScript编写的.这些应用程序由WWAHost托管:

[...]微软将WWAHost解释为"基于Internet Explorer的渲染平台".

您可以通过在任务管理器中右键单击并选择转到详细信息来检查是否是应用程序的情况:

任务管理器进程

任务经理详情

要找出正在托管的应用,您可以使用 MainWindowTitle

Console.WriteLine(p.ProcessName); // WWAHost
Console.WriteLine(p.MainWindowTitle); // Netflix
Run Code Online (Sandbox Code Playgroud)