我如何以编程方式操纵图标的位置 Windows 在桌面上?

几年前,我无辜地试图编写一个小型应用程序,让我的战术位于桌面上的图标,因为当一些事件丢弃时,我厌倦了将它们拖回我的位置。 在花费太多时间后放弃了寻找请求的方法,甚至更加保存并重置桌面上的图标的位置。

有人知道在哪里 Windows 保存此信息并在那里 API, 安装它们?

谢,
理查德
已邀请:

莫问

赞同来自:

如果我没有弄错,工作表就是 ListView, 你必须发送一条消息 LVM_SETITEMPOSITION 在桌面描述符中。

我有点谷歌入一些代码 c# 找不到一个例子,但我找到了以下文章。
http://www.swissdelphicenter.c ... D1897
. 这个代码 delphi, 但我发现它非常可读,有些 P/Invokes 你可以将它转换为 c#.

三叔

赞同来自:

桌面 - 这只是一个元素 ListView, 而且你可以得到他的描述符并发送消息以移动图标 LVM_SETITEMPOSITION.

但是,与图标的位置 LVMGETITEMPOS 一点难。 您必须将指针传输到结构 POINT 作为你自己的 LPARAM. 如果你试图这样做,那么很可能休息 Explorer. 问题是您将其传输到您的地址空间中的指针,该地址空间控制被解释为地址空间中的指针 Explorer. 月亮!

我使用的决定是介绍 DLL 正在进行中 Explorer 并从那里发送消息。 然后,您只需要有一种方法可以将有关位置的信息返回给您的进程。

八刀丁二

赞同来自:

我仍然研究它并尽快发布结果。 我是公众的,因为,间接感谢戴维的帖子,我也发现了古典的实现 VB:

http://www.freevbcode.com/ShowCode.asp?ID=3290
这可能是我的代码的基础。

风见雨下

赞同来自:

我不知道 API, 但我知道 Ultramon /
http://www.realtimesoft.com/ultramon/
/ 具有保存图标的位置的功能 /虽然我从未使用它以保存图标的位置,但它是使用多个监视器的必不可少的。/. 最后一个测试版完美无瑕 Vista /除了有时,我的汽车最初入口处有一点故障或两个 RDP/, 当然,我没有问题 XP. 我一直在使用它超过四年。

我已经提到过,这是使用多个监视器的最佳实用程序?

郭文康

赞同来自:

也许你究竟想要这个?我找到它 《29 5th
https://github.com/wang1902568 ... mming

要回复问题请先登录注册