SEAKZT
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору «Open With ...» или «Открыть с помощью ...» для WinPE Рано или позднолюбой пользователь WinPE встречается с ситуацией когда требуется открыть фаил с не зарегистрированным расширением, или использовать новую версию любимой программы, свободно запускающуюся из под WinPE, но расположенной гдето вне зоны рзарегистрированных программ. В “нормальной” Windows, в контекстном меню файла выбираем «Открыть» -> или «Открыть с помощью ...» -> «Обзор» -> и выбираем программу для работы. В WinPE 1, 2, 3, после финального OK, как можно заметить, ничего не происходит, абсолютно. Причина При выборе новой программы из контекстного меню файла (правый клик на файле), и только отсюда Код: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Unknown\shell\opendlg\command | вызывается программа Код: %SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1 | Инфо о новой программе записывается в в ключи Код: HKEY_CURRENT_USER\Software\Classes\Applications HKEY_USERS\.DEFAULT\Software\Classes\Applications | Далее, в Window7, это инфо автоматически добавляются в Код: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications | Именно после этого, в окошке Выбор программы, появляется новая выбранная программа В WinPe последний пункт не работает. Моё решение проблеммы заключается в принудительном копировании необходимых ключей реестра из HKU в HKLM при вызове программы выбора через контекстное меню Это реализовано посредством плагина Open With в моём констукторе Первый вариант сделан с помощью CMD файла и не очень удачен, так как требует ручной перезапуск диалога выбора для того чтобы увидеть новую программу в окне «Выбор программы». Втрой вариант реализован на AutoIt скрипте и работает как полный автомат Описание: В рег ключ Unknown\shell\opendlg\command прописываем следующую команду: Код: hide.exe /NOCONSOLE ""X:\Program Files\AU3\CMDAU3.exe" /AutoIt3ExecuteScript "x:\Windows\System32\openwith.au3" "%1"" | Рег Файл запускающую AutoIt скрипт Unknown.reg Сам скрипт копирующий нужные ключи реестра и открывающий-закрывающий окна диалога выбора. openwith.au3 CMDAU3.exe, для тех кто не пользовался конструктором и не читал приложенную инструкцию, это пустой файл скомпилированный с опцией “Console” В случае простого двойного клика на файле с не зарегистрированным разрешением, «OpenAs_RunDLL» запустится без посредников в лице доступных и редактируемых ключей реестра. Соответствено предложенное решение не сработает. Для того чтобы сразу отличить каким образом вызываетсая диалог выбора, в код скрипта добавлен вызов всплавающего окна с текстом “Open With ... WinPe mode”. ”... WinPe mode”- так как думаю что скрипт будет работать и в WinPE1, хотя и не проверял | Всего записей: 71 | Зарегистр. 05-04-2009 | Отправлено: 15:25 09-03-2013 | Исправлено: SEAKZT, 15:51 09-03-2013 |
|