我最近在使用 Windows 10 的基本记事本时遇到了这种非常奇怪的行为,我不知道该如何解释它。
我正在为 LMMS 音乐生成器程序使用 MT Power Drumkit 2 插件。前者有自己的临时文件夹,仅用于将使用该插件创建的鼓序列临时保存为 .midi。该文件始终保存为mtpdk.mid
。
在学习使用插件时,我发现一些资源建议您将插件 GUI 上创建的鼓序列拖放到空的记事本中,并将其保存为 .midi 文件。
现在到了奇怪的部分,我需要帮助。
当通过这种方式从插件 GUI 拖放到一个新的、空的、无标题的记事本中时,一旦内容出现,记事本应用程序自动地显示mtpdk.mid
为文件名,并保存内容。
我怀疑发生的情况是记事本以某种方式识别出内容与现有mtpdk.mid
文件匹配,并将我创建的无标题文件交换为现有文件。
这让我很困惑。这相当于打开一个空的 Word 文档,在其中粘贴“一只棕色的狐狸”,如果有一个保存的 .docx 文件,比如说fox.docx
里面有“一只棕色的狐狸”,Word 会自动从你新建的空文档切换到这个fox.docx
。
- 这是可能的吗?Windows 如何识别发生了什么?
- 插件临时文件夹位于 C:(如 C:/tempFolder)。这与行为有关吗?
- 对此有任何安全考虑吗?
答案1
不,这里没有神奇的内容识别。你实际上并没有将任何内容拖入记事本进行粘贴 - 而是将实际文件放入记事本中打开它。因此它不会自动保存任何内容,而是打开之前已保存的文件。
听起来你的程序故意设置它的拖动源来提供一个“外壳对象“(而不仅仅是普通的 MIDI 数据)。当您将其放入记事本时,它会查看通过“拖动源”提供的数据类型,如果它看到它正在提供一个文件,它就会打开该文件。
(事实上,我认为记事本甚至接受可以将文本拖入其中吗?其他编辑器通常允许这样做,但标准 Windows 记事本实际上不允许。
这意味着您还应该能够将相同的序列直接拖到文件夹中,并且我希望 Explorer 可以将其识别为文件副本。
您也可以尝试将其放入 WordPad 或 Microsoft Word 中。如果您将某个内容放到 WordPad 的标题栏/按钮栏上,它将作为文件打开;但是如果您将其放入“文档”区域,它将作为文本或 OLE 对象插入,因此您可以准确看到所拖动的内容。