Windows aero peek API

Jel*_*eer 8 windows api aero aero-peek

我正在尝试使用API​​进行航空偷看.经过大量的挖掘和搜索,我偶然发现了这段代码:

    [DllImport("dwmapi.dll", EntryPoint = "#113", SetLastError = true)]
    internal static extern uint DwmpActivateLivePreview(uint , uint , uint , uint );
Run Code Online (Sandbox Code Playgroud)

但我不能让它工作..我不知道参数是什么..我尝试了一些API拦截工具,但没有成功.如何才能发现如何正确调用此API?

Jel*_*eer 4

我最终自己解决了。我在我的网站上发布了一篇关于此的文章: http://www.jesconsultancy.nl/tips-and-tricks/aero-apis.html。不幸的是,这是荷兰语,所以这里有一些解释:

 [DllImport("dwmapi.dll", EntryPoint = "#113", SetLastError = true)]
 internal static extern uint DwmpActivateLivePreview(uint switch, IntPtr hWnd, IntPtr c, uint d);

 DwmpActivateLivePreview(1, Handle, topmostWindowHandle, 1);//activate
 DwmpActivateLivePreview(0, Handle, topmostWindowHandle, 1);//deactivate
Run Code Online (Sandbox Code Playgroud)

第一个参数用于激活/停用 Aero Peek 功能。第二个参数是 Aero peek 聚焦的句柄。另外两个 我还没能认出来

编辑: 在对这个 API 进行了更多的修改之后,我找到了第三个参数。设置表单的 TopMost 属性时,表单有时仍会显示在航空窥视效果下方。如果将需要位于窥视效果顶部的表单的句柄作为第三个参数传递,并且表单的 TopMost 属性设置为 true,则您的表单将位于窥视效果之上。

您可以从 Aero Peek 效果中排除窗口。此处描述:http ://huddledmasses.org/fun-with-pinvoke-and-aero-peek/

  • 刚刚在已发布的 Win 8 上测试了该 API,其签名仍然正确。 (2认同)