2

有谁知道要传递给 dwmapi.dll 序号 #113 的参数是什么?(Windows 7的)

我正在尝试将此方法合并到我正在编写的应用程序中。据我所知,这个方法负责为 Windows 做 Aero peek 事情。如果我不向该方法传递任何参数,它将显示所有打开的非最大化窗口的桌面和轮廓。当我尝试传递参数时没有任何反应——我已经通过反复试验完成了……主要是错误。

任何帮助将不胜感激。

4

6 回答 6

11

不要这样做。它没有记录是有原因的,并且随时可能更改和/或删除。鉴于 Windows 7 尚未发布,您甚至无法保证它会出现在最终版本中。

于 2009-05-27T15:32:21.980 回答
1

我认为是因为并非所有 Windows 版本都支持 aeropeek,不支持家庭基本版,也许您可​​以实现自己的窗口 peek 或至少使用 alpha 透明度(同时绘制一些边框)来伪造它并使用窗口矩形查询底层窗口坐标像矩形碰撞检测算法。

于 2011-10-22T14:19:50.153 回答
1

您的标签不一致。API 是应用程序编程接口。Ordinal #113 未记录,因为它不是应用程序接口的一部分。它可能存在是因为操作系统本身需要它,或者因为当前的 RC 尚未完成删除它等。

于 2009-05-27T15:39:53.103 回答
1

好吧,我曾经用 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);

小心使用它,因为许多评论告诉你它由于某种原因没有记录。

于 2011-08-26T06:19:37.177 回答
0

应用程序无法激活 Aero Peek 是有原因的——用户可以选择何时发生这种情况,而不是您。

于 2009-05-28T06:27:12.640 回答
0

请阅读Raymond Chen 的博客,直到您意识到这是一个非常非常非常糟糕的主意!

于 2009-05-27T21:36:57.830 回答