2

我尝试使用 GetDesktopWindow() 在我的 Windows 桌面上绘画。但我失败了,因为桌面会迅速重新粉刷自己,而我的画没有出现。所以我需要将 GetDesktopWindow() 获得的桌面窗口替换为 ownerdraw 应用程序窗口 谁能有一个想法,怎么做?

提前致谢,米兰

4

5 回答 5

0

我不认为这是可能的。当我编写一个操纵桌面的“桌面玩具”时,我所做的是截取屏幕截图,创建一个与桌面一样大的窗口,然后将屏幕截图放在我的应用程序窗口的背面。当然,这确实阻止了开始菜单和桌面图标之类的工作,但这对我来说很好,不知道你在做什么。

您可以尝试对从 GetDesktopWindow() 获得的窗口进行子类化...虽然我怀疑 Windows 有针对这种恶作剧的保护措施。

于 2010-01-25T18:14:37.513 回答
0

您无法替换桌面窗口。但是你可以让它画你想要的任何东西。

只需将要绘制的任何内容放入位图中,然后使用SystemParametersInfo将其选择为桌面背景位图 SPI_SETDESKTOPWALLPAPER

于 2010-01-25T21:32:04.610 回答
0

我对 Windows 桌面有一些不满,我正在评估的一种选择是 Windows KDE ...

http://windows.kde.org/

那是(通常)基于 Linux Qt 的 KDE 窗口系统的 Windows 版本。

我在安装信息中解释了如何替换 windows shell(桌面)。就我而言,我玩得很安全。我保留了我的旧帐户(为简单起见,我只是在以管理员身份登录时将帐户信息复制到“我的副本”文件夹)。

我正在使用 KDE 作为单独的用户进行评估。

作为问题的答案,有信息。在安装文档和代码库中覆盖 96% 的问题。与我们大多数人分享其余部分:-)

\_w_/

于 2010-07-13T09:53:02.897 回答
0

您可以将注册表中的默认 shell 更改为您自己的应用程序。

我尝试在注册表中用 cmd.exe 替换 explorer.exe 并且它有效。当我重新启动机器时,我只能看到一个命令提示符。

于 2012-04-04T10:58:18.837 回答
-1

作为管理员,创建 C:/windows/explorer.exe 的副本并将其保存为 explorer.exe.old,删除 explorer.exe,并将您的应用程序复制到 C:/windows 作为 explorer.exe。重新启动,登录,理论上,它应该在那里。

于 2019-03-07T20:38:47.090 回答