Registered types - DropTarget

Здесь можно сообщить о найденных багах в Far.
Post Reply
Andys
Posts: 12
Joined: Thu 03 Nov, 2011 11:21

Registered types - DropTarget

Post by Andys »

Не знаю, возможно такое поведение по каким-то причинам специально сделано...
Дано: winamp с зарегистренными mp3. Far Manager пробовал две версии - 2.0 1613 и 3.0 2631 х86. Windows 7 x64 SP1
В HKCR класс winamp.file.mp3 имеет дефолтное действие Play, недефольное действие Open. Но оба этих действия в реестре с одинаковыми параметрами.

Само явление -
тест1. винамп не запущен, запускаем мп3-шку из фара энтером. Она именно играется, одна-одинешенька, а не добавляется к существуемому плейлисту (т.е. очищается, потом добавляется, потом играется).
тест2. винамп запущен, играется какой-то плейлист, запускаем из фара мп3. Она добавляется в конец плейлиста вместо того чтобы очистить его и играть только этот файл.
тест3. из фара, не энтером, а контекстным меню. Играется, а не добавляется в плейлист
тест4. из виндовс эксплорера, двойным кликом или контекстным меню. Тоже играется.
В винампе пробовал включать-отключать галочку, ответственную за "добавлять в плейлист/играть сразу", она ничего не меняет в поведении фара.

В конце концов нашел что мешало - в классе winamp.file.mp3 кроме command есть ключик DropTarget, в котором забит какой-то айдишник, вероятно самим винампом при установке.
Удаление этого DropTarget заставило наконец фар в обоих случаях (с уже запущенным и ещё не запущенным винампом) действовать одинаково - именно проигрывать файл, а не добавлять в плейлист.
По результатам тестов, считаю, что фар некорректно следует этому ключику DropTarget и исполняет перетаскивание, в то время когда от него требуется исполнить комстроку из Open.
(поскольку как раз перетаскивание файла в виндовс эксплорере в окошко винампа приводит к добавлению трека в плейлист. И после удаления этого дроптаргета фар исправляется)

Собственно, поскольку решение я нашел - удалить все эти DropTarget ветки, то особо даже и не прошу исправить... Просто странно как-то и с моей точки зрения некорректно. Если исполнять Open - то исполнять, зачем апишное перетаскивание-то...
Понятно, что выполнить предусмотренное программой баыстрое действие - это эффективнее по ресурсам, не нужно запускать новый процесс итп... но все же, энтер - всегда был четко "запустить", и обычно был равнозначен двойному клику в винде. Вот сейчас в кои-то веки запустил файлик из фара, и сам удивился - почему аж со второго фара я не замечал такого поведения...
Post Reply

Return to “Глюки и баги”