有谁知道要传递给dwmapi.dll ordinal#113的参数? (Windows 7)
我正在尝试将此方法合并到我正在编写的应用程序中。据我所知,这种方法负责为Windows做Aero peek。如果我没有将params传递给方法,它将显示所有打开的非最大化窗口的桌面和轮廓。当我尝试传递参数时没有任何反应 - 我使用试验和错误完成了...大多数错误。
非常感谢任何帮助。
答案 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 - 用户可以选择何时发生,而不是你。