【问题标题】:EnumWindows doesnt show apps from windows 8 metroEnumWindows 不显示来自 Windows 8 Metro 的应用程序
【发布时间】:2013-08-20 01:57:29
【问题描述】:

我有一个使用此代码的程序:

EnumWindows eW = new EnumWindows();
eW.GetWindows();

和一个 foreach 循环。但是,这只会返回 Windows 桌面应用程序,而不会返回 Metro 应用程序。有什么办法可以用 Metro 应用程序找到所有打开的窗口?另外,我如何找到 Metro 启动器。我怎么能这样做?

【问题讨论】:

  • 没有。 Metro 应用程序和桌面应用程序在不同的环境中运行,并且两者都不会相遇。 (这里经常问这个问题,但我找不到手头的)
  • 它们只是没有显示在窗口中。 IAppVisibility 界面提供了一些功能,而不是您想要的。
  • 我需要windows preperties 以及大小、标题等...这是下一个循环的基本信息,我在其中启动一个像按钮、区域等这样的窗口元素。有什么方法可以做吗?如何在 Metro 环境中找到正在运行的应用程序?谢谢
  • 也许你能找到正在运行的进程?
  • 但这还不够,因为我需要知道窗口属性。尺寸、标题、位置......在我得到这些信息后,程序的下一部分将扫描窗口中的所有内容......按钮、区域、光标等......并将制作一个由 .png 图像组成的“副本”,接下来是 wish发布到闪存...对我来说,找到像 ALT+TAB 视图这样的应用很重要...这可能吗?

标签: c# winforms windows-8 windows-runtime windows-store-apps


【解决方案1】:

您需要将清单文件添加到您的应用程序并设置 uiaccess=true

微软指南: http://msdn.microsoft.com/en-us/library/bb756929.aspx

在 uiaccess 标志设置为 true 的应用程序中使用 EnumWindows 将产生 alt-tab 中的所有窗口,然后产生更多窗口(您可能希望过滤掉)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多