8

我想将我的应用程序设置为桌面级别,例如 Windows 小工具。这有可能实现吗?

问题是,我有想在桌面上运行的无边界应用程序。

我试图找到这个选项,但我发现只有“始终处于领先地位”,这与我想要实现的目标相反。

4

4 回答 4

6

旧的SetWindowPos支持 HWND_BOTTOM 将您的应用程序放置在顺序中的最后一个。要在 C# 中使用它,请查看PInvoke.Net

于 2010-03-03T14:44:52.133 回答
3

编写应用程序,使其在后台作为服务运行,然后将实际的 Windows Gadget 实现为前端?

于 2010-03-03T14:39:15.647 回答
0

我认为没有办法像往常一样做到这一点。你想在图标下运行你的应用程序吗?做一个真正的后台应用程序的唯一方法是替换 explorer.exe,但是你不会看到图标和任务栏。

于 2010-03-03T14:33:23.083 回答
0

您可以通过创建 XBAP 来使用 WPF 实现实际的 Windows 小工具。只需添加一个 gadget.xml 文件和一个仅包含加载 XBAP 的 IFRAME 的 .html 文件。这样,您的 WPF 应用程序实际上将是一个小工具,并且会自动遵循所有规则。

另一种选择是使用Windows Sidebar Styler。这需要与您的软件一起安装额外的软件,但还允许您在没有代码签名证书、用户授权等的情况下执行您在 XBAP 沙箱中无法执行的操作。

第三种选择是创建一个使用 HTML 中可识别的东西(例如特定背景颜色)的小工具,然后当您的 .exe 启动时,在资源管理器下扫描具有您正在寻找的属性的 hWnd,将自己注入Explorer.exe 进程,并将您的窗口设置为它的子窗口。

第三个选项的一个变体是不注入 Explorer.exe,而是维护您的 Z 索引和位置(使用 SetWindowPos)来跟踪您找到的 hWnd 的 Z 索引和位置。

这么多选择...

于 2010-03-03T16:19:37.423 回答