我有一个我想坚持在桌面上的应用程序。坚持桌面意味着每次有人单击 windows+D 或显示桌面图标时,桌面上都会出现应用程序。
用户可以在桌面上定位应用程序并随时更改位置,但它始终保留在桌面上。
我们通过使用 winAPI 方法 SetParent (this .Handle, FindWindow ( "Progman " , null )); 将应用程序的父级设置为桌面来设法在 XP 上做到这一点。
在 Vista 上,我们设法将其固定在桌面上,只要桌面获得焦点,它就会在我们的窗口周围绘制灰色背景。当我的窗口移动时,这个背景不会消失,在桌面上留下难看的方块。当我单击 Windows+D 时,它们都消失了。请注意,这根本不会发生在 XP 上。
客户端基于 .NET 3.0 和 WPF 。
知道为什么会发生以及如何解决吗?