Чем можно объяснить странное поведение «автоматического сохранения» в Блокноте?

Чем можно объяснить странное поведение «автоматического сохранения» в Блокноте?

Недавно я столкнулся с этим очень странным поведением при использовании стандартного Блокнота Windows 10 и не могу понять, чем это можно объяснить.

Я использую плагин MT Power Drumkit 2 для программы генератора музыки LMMS. У первого есть своя временная папка, которая используется только для временного сохранения последовательности ударных, созданной с помощью плагина, в виде .midi. Файл всегда сохраняется как mtpdk.mid.

Изучая использование плагина, я нашел несколько ресурсов, которые рекомендовали перетаскивать последовательность ударных, созданную в графическом интерфейсе плагина, в пустой Блокнот и сохранять ее как файл .midi.

А теперь самое странное, с чем мне нужна помощь.

При перетаскивании таким образом из графического интерфейса плагина в новый, пустой, безымянный Блокнот, как только появится содержимое, приложение «Блокнот»автоматическиотображается mtpdk.midкак имя файла и сохраняет его содержимое.

Я подозреваю, что Блокнот каким-то образом распознает, что содержимое соответствует существующему mtpdk.midфайлу, и заменяет созданный мной безымянный файл на существующий.

Это меня очень озадачивает. Это эквивалентно открытию пустого документа Word, вставке в него "One brown fox", и если есть сохраненный файл .docx, скажем, fox.docxс "One brown fox", Word автоматически переключится с вашего только что созданного пустого документа на этот fox.docx.

  1. Возможно ли это, и как Windows распознает происходящее?
  2. Папка temp плагина находится в C: (как в C:/tempFolder). Имеет ли это отношение к поведению?
  3. Существуют ли какие-либо соображения безопасности в связи с этим?

решение1

Нет, здесь нет никакого волшебного распознавания контента. На самом деле вы не перетаскиваете контент в Блокнот, чтобы вставить его — вы перетаскиваетефактический файлв Блокнот, чтобы открыть его. Таким образом, это не автоматическое сохранение чего-либо, а открытие файла, который уже был сохранен ранее.

Похоже, что ваша программа намеренно настраивает свой источник перетаскивания так, чтобы предлагать "объект оболочки" (а не только простые MIDI-данные). Когда вы перетаскиваете их в Блокнот, он просматривает типы данных, предоставленные через "источник перетаскивания", и если видит, что ему предлагается файл, он открывает этот файл.

(На самом деле, я не думаю, что Блокнот дажепринимает(Перетаскивание текста в него? Другие редакторы обычно это позволяют, но стандартный Блокнот Windows на самом деле нет.)

Это означает, что вы также сможете перетащить ту же последовательность непосредственно в папку, и я ожидаю, что Explorer распознает это как копию файла.


Вы также можете попробовать перетащить его в WordPad или Microsoft Word. Если вы перетащите что-то на строку заголовка/панель кнопок WordPad, оно будет открыто как файл; но если вы перетащите его в область «документа», оно будет вставлено либо как текст, либо как объект OLE, так что вы сможете увидеть, что именно вы перетаскивали.

Связанный контент