【发布时间】:2021-05-06 17:11:44
【问题描述】:
我想刷新将鼠标悬停在 Windows 上的任务栏图标上时(或 Alt+Tabbing 时)显示的 aero 预览。
我发现一个名为DwmInvalidateIconicBitmaps 的函数看起来很有希望,但是当我使用它时:
[DllImport("dwmapi.dll")]
static extern int DwmInvalidateIconicBitmaps(IntPtr hwnd);
...
int res = DwmInvalidateIconicBitmaps(MyWindowHandle);
res 设置为 -2,147,024,809。当我查看十六进制时,它是FFFF FFFF 8007 0057,根据this site,它似乎对应于E_INVALIDARG。
然而,我的窗口句柄是有效的,并且在其他地方成功使用。我遇到的另一个站点提到,当无法加载 DLL 时会引发此错误。会不会是这个问题?
我也没有看到pinvoke site 中提到的这个函数,虽然我确实看到了其他 DWM 函数,这很奇怪。
Windows 10 / .NET Core
【问题讨论】:
-
窗口是否属于你的调用进程?
-
@SimonMourier 嗯...不。我也在文档中看到了这一点。不确定是否会导致 InvalidArg 错误..