几年前,我尝试编写一个小应用程序来保存我桌面上的图标位置,因为每次某个事件重置它们时,都需要将它们拖回到原来的位置,这让我感到很厌烦。但是我花费了太多时间去寻找一种查询、保存和重置我的图标桌面位置的方法,最终放弃了。
有人知道Windows在哪里存储这些信息,以及是否有API可以设置它们吗?
谢谢, Richard
如果我没记错的话,桌面只是一个ListView,你需要向桌面的句柄发送 LVM_SETITEMPOSITION 消息。
我为一些C#代码搜索了一下,但没有找到例子,但我找到了下面这篇文章。 Torry: ...get/set the positions of desktop icons?。这是Delphi代码,但我认为它非常易读,通过一些P/Invokes,你可以将其翻译成C#。
也许你需要这个?我在《WindowsCoreProgramming 5th》中找到了它 https://github.com/wang1902568721/WindowsCoreProgramming
我对API一无所知,但我知道Ultramon(http://www.realtimesoft.com/ultramon/)包括了一个功能来保留图标位置(虽然我从未用过它来保留图标位置,但它对于使用多个显示器非常重要)。最新的beta版本在Vista上运行得非常完美(除了通过RDP最初登录我的机器时有时会出现一些小问题),当然,在XP上也没有任何问题。我现在已经使用它四年了。
还有,我提到它是最适合使用多个显示器的实用工具了吗?