miksanfree

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вроде нашел решение: Есть два способа запуска KMPlayer-а: 1-й. Кликнуть 2 раза в проводнике или в тотале на каком либо фильме. Просто обычный способ запуска файлов. 2-й. Запустить KMPlayer-р через Пуск-Программы-The KMPlayer-KMPlayer.lnk или любой другой способ. Главное, чтобы просто запускалась программа, без открытия какого либо файла. Если запустить 2-м способом, то выключение пройдет нормально. Если 1-м, то вылазит окно. Правда не у всех и не всегда Вот экспорт реестра ответственного за открытие файлов *.avi (для примера, в остальных тоже самое): Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\KMPlayer.avi] @="KMP - Видеозапись" [HKEY_CLASSES_ROOT\KMPlayer.avi\CLSID] @="{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}" [HKEY_CLASSES_ROOT\KMPlayer.avi\DefaultIcon] @="\"D:\\Program Files\\KMPlayer\\KIconLib.dll\",2" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell] [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\Enqueue] @="Добавить в KMP" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\Enqueue\command] @="\"D:\\PROGRA~1\\KMPlayer\\kmplayer.exe\" /ADD \"%1\"" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\Enqueue\DropTarget] "Clsid"="{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\open] [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\open\command] @="\"D:\\PROGRA~1\\KMPlayer\\kmplayer.exe\" \"%1\"" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\open\DropTarget] "Clsid"="{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\play] @="Воспроизвести в KMP" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\play\command] @="\"D:\\PROGRA~1\\KMPlayer\\kmplayer.exe\" \"%1\"" [HKEY_CLASSES_ROOT\KMPlayer.avi\shell\play\DropTarget] "Clsid"="{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}" Все проблема кроется в строчках: {9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD} и {6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD} Я и сам толком не разобрался полностью, но и так понятно что эти GUID-ы связаны с COM объектами. Эти GUID-ы прописаны для каждого расширения, с которым KMPlayer ассоциирован. К счастью все их нет надобности удалять. Потому что эти GUID-ы ссылаются на эту часть реестра: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}] @="KMPlayer" [HKEY_CLASSES_ROOT\CLSID\{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}\LocalServer32] @="D:\\PROGRA~1\\KMPlayer\\kmplayer.exe" [HKEY_CLASSES_ROOT\CLSID\{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}\ProgID] @="kmplayer.TKMPDropTarget2" и Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}] @="KMPlayer" [HKEY_CLASSES_ROOT\CLSID\{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}\LocalServer32] @="D:\\PROGRA~1\\KMPlayer\\kmplayer.exe" [HKEY_CLASSES_ROOT\CLSID\{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}\ProgID] @="kmplayer.TKMPDropTarget" Из-за всего этого, если смотреть на дерево процессов в Process Explorer-е то видно, что родительский процесс KMPlayer-а не Explorer.EXE или TOTALCMD.EXE, а svchost.exe. Причем командная строка KMPlayer-а выглядит так: "C:\Program Files\KMPlayer\kmplayer.exe -Embedding". Видимо путь к открываемому файлу передается средствами COM. Таким образом достаточно удалить две ветки реестра: [HKEY_CLASSES_ROOT\CLSID\{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}] и [HKEY_CLASSES_ROOT\CLSID\{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}] и все. Проще маленьким рег файликом: Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CLSID\{6E7D4AE2-770B-4F0D-9365-FEAD8DED17CD}] [-HKEY_CLASSES_ROOT\CLSID\{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}] Вот как дерево выглядит после удаления ключей: Самое интересное, что удаление этих ключей никак не сказывается на процессе открытия файлов. Зачем это так сделано я так и не нашел в инете. И самое главное почему у других на семерке все работает и без удаления ключей  |