有谁知道要传递给 dwmapi.dll 序号 #113 的参数是什么?(Windows 7的)
我正在尝试将此方法合并到我正在编写的应用程序中。据我所知,这个方法负责为 Windows 做 Aero peek 事情。如果我不向该方法传递任何参数,它将显示所有打开的非最大化窗口的桌面和轮廓。当我尝试传递参数时没有任何反应——我已经通过反复试验完成了……主要是错误。
任何帮助将不胜感激。
不要这样做。它没有记录是有原因的,并且随时可能更改和/或删除。鉴于 Windows 7 尚未发布,您甚至无法保证它会出现在最终版本中。
我认为是因为并非所有 Windows 版本都支持 aeropeek,不支持家庭基本版,也许您可以实现自己的窗口 peek 或至少使用 alpha 透明度(同时绘制一些边框)来伪造它并使用窗口矩形查询底层窗口坐标像矩形碰撞检测算法。
您的标签不一致。API 是应用程序编程接口。Ordinal #113 未记录,因为它不是应用程序接口的一部分。它可能存在是因为操作系统本身需要它,或者因为当前的 RC 尚未完成删除它等。
好吧,我曾经用 AeroPeek 功能模仿 Alt-Tab。
using System.Runtime.InteropServices;
...
[DllImport("dwmapi.dll", EntryPoint = "#113", SetLastError = true)]
internal static extern uint DwmpActivateLivePreview(uint a, IntPtr b, uint c, uint d);
...
//To call it
IntPtr peekHwnd = //<-- here goes the application Handle to aeropeek
//to enable
DwmpActivateLivePreview(1, peekHwnd, 0, 1);
...
//to disable
DwmpActivateLivePreview(0, peekHwnd, 0, 1);
小心使用它,因为许多评论告诉你它由于某种原因没有记录。
应用程序无法激活 Aero Peek 是有原因的——用户可以选择何时发生这种情况,而不是您。
请阅读Raymond Chen 的博客,直到您意识到这是一个非常非常非常糟糕的主意!