C# 设置桌面图标后面的窗口

Ozz*_*zzy 5 c# windows winapi handle

假设我在屏幕上的 0,0 坐标处有一个 100px x 100px 的空表单。它没有边框样式。有什么办法可以将其放置在桌面图标后面吗?

我认为这将涉及 Progman 进程,因为它包含桌面图标。但无论我尝试什么...获取窗口句柄和更改父母等,我似乎无法让窗口出现在图标后面。

有任何想法吗?

Aar*_*ght 6

本质上你想在桌面壁纸上画画。桌面层次结构如下所示:

"Program Manager" Progman
  "" SHELLDLL_DefView
    "FolderView" SysListView32
Run Code Online (Sandbox Code Playgroud)

SysListView32实际上绘制了桌面图标,所以这就是你必须挂钩的。而且你不能只是把你的表格粘在上面;你必须抓住WindowDC那个手柄并在DC上画画。

这是可以完成的——已经完成了,但是您将使用大量的互操作。忘记使用传统的 Winforms 表单来执行此操作。我认为我什至没有看到它在 C# 中完成,尽管有人在python中完成了它,如果这有帮助的话。我自己不是 python 编码员,但代码非常简短且易于理解。

  • 嘿,我就是那个用 Python 做到这一点的人!;)(看到网络流量从这个链接进入我的博客......碰巧我也是一个 SO 成员,呵呵。) (2认同)