"始终置顶" 的相反是什么?

8

我希望将我的应用程序设置为桌面级别,就像Windows小工具一样。这个能实现吗?

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

我尝试查找选项,但我只找到了“始终置顶”,这与我想要实现的相反。


4
有没有原因不能将它编写为Windows小工具? - Rich
2
当你为应用程序设计新的UI模式时,最有可能会让用户讨厌。"为什么那个混蛋要把这个应用程序做成无边框的?我不能调整它的大小,在我的大屏幕上太小了。真是个白痴!" 最好的方法是找到一个人们喜欢并使用的常见UI模式(例如小工具、托盘图标应用程序、Windows服务、定期任务、最小化到托盘并显示通知弹出窗口的应用程序等等)。 - user1228
1
@rick:对于Windows小工具来说,这太复杂了。 :)@Adam:他,不是她 ;) - Danijel
@Will:该应用程序旨在看起来像一个小工具,运行在桌面级别,并给用户带来影响,让他们认为它是自然集成到Windows桌面中的。 - Danijel
@danijel,除了它没有与桌面集成,不是小工具,并且不会像它们中的任何一个一样行为。因此,当用户期望您的应用程序出现在小工具库中(它不会)或者如果他们认为它受到与其他桌面功能相同的控制(祝你好运),他们最终会讨厌你。不要试图愚弄用户,而是向他们展示一个有用的应用程序如何?这种思维方式...让我感到困惑。 - user1228
4个回答

6

经典的SetWindowPos函数支持HWND_BOTTOM参数,可以将应用程序置于最后一个位置。 如需在C#中使用,请参考PInvoke.Net


3

将应用程序编写为在后台运行的服务,然后实现一个实际的Windows小部件作为前端?


0

我认为没有办法像一直置顶那样做。你想要在图标下运行你的应用程序吗?真正实现后台应用程序的唯一方法是替换explorer.exe,但这样你将看不到图标和任务栏。


我希望我的应用程序与桌面图标处于同一级别,而不是它们的下方。 - Danijel

0

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

另一个选择是使用Windows Sidebar Styler。这需要在您的软件旁边安装额外的软件,但也允许您在没有代码签名证书、用户授权等情况下进行一些无法在XBAP沙箱内完成的操作。

第三个选项是创建一个小工具,该小工具使用HTML中可识别的某些内容(例如特定的背景颜色),然后当您的.exe启动时,在Explorer下扫描具有您要查找的属性的hWnd,将自己注入到Explorer.exe进程中,并将您的窗口设置为其子级。

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

如此多的选择...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接