在Windows系统桌面签入窗口,点击‘显示桌面’时也能和桌面图标一样不隐藏。
使用了这样的方法:
public void SetDeskWindow(IntPtr hWin)
{
//win7 下是查找 Progman 窗口
IntPtr hDeskTop = FindWindow("Progman", null);
IntPtr hShellDll = IntPtr.Zero;
hShellDll = FindWindowEx(hDeskTop, IntPtr.Zero, "SHELLDLL_DefVIew", null);
// win8,10 需寻找 workerw 窗口,因有多个,需查找其下有 shelldll_defView 的
if (hShellDll == IntPtr.Zero)
{
hDeskTop = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "WorkerW", null);
while (hDeskTop != IntPtr.Zero)
{
hShellDll = FindWindowEx(hDeskTop, IntPtr.Zero, "SHELLDLL_DefView", null);
if (hShellDll != IntPtr.Zero) break;
hDeskTop = FindWindowEx(IntPtr.Zero, hDeskTop, "WorkerW", null);
}
}
hDeskTop = FindWindowEx(hShellDll, IntPtr.Zero, "SysListView32", null);
SetParent(hWin, hDeskTop);
}
虽然此方法在win7,win10 下都能正常签入桌面,但在win10 下,签入桌面的窗口上所有文字都是透明的(图片不会透明),在Win7下正常。
怎样能使这样的签入窗口文字不透明而正常显示?
补充图片: