有谁知道传递给dwmapi.dll ordinal#113的参数是什么?

时间:2009-05-27 15:26:32

标签: winapi windows-7

有谁知道要传递给dwmapi.dll ordinal#113的参数? (Windows 7)

我正在尝试将此方法合并到我正在编写的应用程序中。据我所知,这种方法负责为Windows做Aero peek。如果我没有将params传递给方法,它将显示所有打开的非最大化窗口的桌面和轮廓。当我尝试传递参数时没有任何反应 - 我使用试验和错误完成了...大多数错误。

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:1)

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

答案 2 :(得分: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);

请谨慎使用,因为许多评论告诉您由于某种原因它没有记录。

答案 3 :(得分:1)

我认为是因为所有Windows版本都不支持aeropeek,不支持home basic,也许你可以实现自己的窗口偷看,或者至少使用alpha透明度假设它(同时绘制一些边框)并使用查询底层窗口窗口矩形坐标类似于矩形碰撞检测算法。

答案 4 :(得分:0)

请仔细阅读Raymond Chen's blog,直到您意识到这是一个非常非常非常糟糕的想法!

答案 5 :(得分:0)

有一个原因是应用程序无法激活Aero Peek - 用户可以选择何时发生,而不是你。