0

我的妻子抱怨我在 Windows XP-Pro 桌面上有太多图标。

我希望能够快速将文件拖放到我想要打开的应用程序的图标上。而且我喜欢点击链接来打开常用的深度嵌套文件夹,而不是在那里导航。因此,我在桌面上有超过 100 个图标。

(我们共享同一个用户帐户,因为我们经常来回切换,而且我们都需要访问同一个电子邮件,所以单独的帐户不是答案。)

我想编写一个与 Windows 桌面具有类似功能的程序。然后我可以打开那个窗口来进行拖放工作,但是,当最小化时,我妻子的桌面显示会变得稀疏。作为额外的奖励,我可以实现比桌面允许的更好的图标组织。

这类似于资源管理器窗口的功能,唯一的例外是桌面允许您对图标进行一些排列。(例如,左侧的程序图标(最常用的靠近顶部),顶部的文件夹,右侧的数据文件。)

  1. 如何获取要在 Windows 窗体(或窗体上的适当控件)中显示的图标?(例如,如果我放入记事本的链接或文件夹的链接。)

  2. 如果双击图标,我如何采取与桌面相同的操作?(例如,如果双击文件夹的链接。)

  3. 如果图标被拖到桌面上,我该如何采取与桌面相同的操作?(例如,将文本文件拖到记事本图标上。)

我正在使用 Visual Studio 和 C#.NET 进行编程。

我知道如何进行基本的拖放。

我不知道:
A. 在窗体上使用什么控件来显示图标
B. 如何找到图标
C. 桌面在各种情况下构建了哪些命令(以便我可以模拟功能)

我很抱歉这是一个多部分的问题,但是如果不重新解释整个故事就很难分开。

4

2 回答 2

0

你为什么不只使用虚拟桌面?

试试http://virtuawin.sourceforge.net/

你会跳过很多编码。

就在他们的页面上:“VirtuaWin 是 Windows 操作系统 (Win9x/ME/NT/Win2K/XP/Win2003/Vista) 的虚拟桌面管理器。虚拟桌面管理器允许您在多个虚拟桌面上组织应用程序(也称为“工作区”) '). 虚拟桌面在 Unix/Linux 中非常常见,一旦你习惯了使用它们,它们就会成为高效工作流程的重要组成部分。”

于 2009-10-04T21:31:18.837 回答
0

这是一个大问题,但我会给你一些快速的想法,让事情朝着正确的方向发展。WinForms 公开了实现这一点所需的功能,只需按照您想要的方式连接所有内容。

您将要研究的关键部分是拖放,WinForms 很好地支持它。如果将图标实现为 ImageBoxes,则可以在程序图标上设置 AllowDrop 属性,然后处理 DragDrop 事件并让它调用 System.Diagnostics.Process() 的重载,以使用拖放的文件名作为参数启动应用程序。

就查找图标而言,大多数程序都将其图标作为资源包含在其 .EXE 文件或相关的 .DLL 中。

关于问题 C,潜在的问题是您希望在您的程序中具有哪些桌面行为?Explorer.exe 是一个庞大的应用程序,它的功能远远超出您的需要或您将需要或想要实现的功能。一旦你决定了你想要什么功能,就可以玩弄表单和图像框控件的 IntelliSense 事件列表。您会发现在 Windows 常用控件中免费提供了许多行为,并且通过处理适当的事件很容易添加其他行为。

于 2009-10-04T21:27:52.710 回答