Windows 操作系统具有非常方便的拖放功能,这对任何用户来说都是常识,但从技术角度来看;一些开发人员在某个时间点将该功能添加到操作系统中。这是一个很棒的功能,它大大增强了用户体验。这是一张图片供参考。
我想知道这个功能是如何“在幕后工作的?” 我在网上找到了解释其行为的文章,例如从网络位置拖动文件将复制文件而不是移动文件,但这不是我正在寻找的解释类型。
我正在寻找关于它的作用的更多技术解释。如果我要右键单击一个文件,选择“剪切”,然后在另一个目录中右键单击并选择“粘贴” - 对我来说,用户,这似乎是与拖放相同的一般过程,我是只是不使用便利功能。但从技术角度来看,这是正确的操作吗?当我拖动一个文件,Windows 将其从一个目录移动到另一个目录时,它是否确实对源文件执行了剪切操作,将文件复制到目标位置,并对源文件执行了删除操作?也许在这个过程中的某个时刻也有一个验证步骤。我会假设整个文件在移动之前被写入内存,或者文件的各个部分在移动时被写入内存。
我很想知道任何人都必须提供的有关拖放功能(如果有人知道的话,可以深入到 dll 函数)的所有技术和“幕后”信息,以及它与其他移动方法的比较像剪切和粘贴一样的文件。
仅供参考:我的信息可能已过时,因为我已过时。
在幕后,拖放操作使用 COM 对象。COM 是一个充满痛苦的世界,但基本上它允许不同的应用程序相互交谈。当您拖放时,您创建了一条发送到目标应用程序的消息。
对此有不止一种解决方案(例如文件对象与非文件对象)。我假设 Windows Store Apps 有一个现代的非 COM 实现。
我建议您先浏览一下 COM 是什么:
https://en.wikipedia.org/wiki/Component_Object_Model
然后通过查看以下内容来满足您的好奇心:
https://www.codeproject.com/Articles/840/How-to-Implement-Drag-and-Drop-Between-Your-Progra