Я разработал расширение Opera. Это работает нормально. Но мне нужно установить расширение в реестр Windows или в файловую систему Windows. Как я могу это сделать?
Установить расширение Opera из реестра
Ответы (1)
ПРИМЕЧАНИЕ. ЭТОТ ВОПРОС ОТНОСИТСЯ К OPERA 12
Opera 12 использует другую архитектуру расширения, чем следующие версии Opera!
Расширения Opera не устанавливаются через реестр.
Вы найдете XML-файл с именем widget.dat
в папке:
C:\Users\%Username%\AppData\Local\Opera\Opera\widgets
У каждого виджета есть запись. Я думаю, что вы сами поймете синтаксис, он вполне объясним, если у вас установлены какие-то виджеты.
РЕДАКТИРОВАТЬ: я только что узнал, что добавление новой записи в
widget.dat
приведет к установке расширения в Opera, но оно будет деактивировано, поскольку оно не было инициализировано. Обычно это происходит через движок javascript/расширения во время выполнения.
Чтобы включить скрипт вручную, в папке wuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
должен быть prefs.dat
, отмеченный в widget.dat, содержащий как минимум следующую структуру:
<?xml version="1.0" encoding="utf-8"?>
<preferences>
<section id="ui">
<value id="default-prefs-applied" xml:space="preserve">1</value>
</section>
</preferences>
Кроме того, вам, возможно, придется вручную инициализировать настройки виджета в папке pstorage
. Настройки хранятся в виде строк пар ключ-значение utf-16 в кодировке base64. Итак, эта закодированная структура:
<ws>
<e>
<k>YQBsAGUAcgB0AF8AYgB1AGIAYgBsAGUAXwB0AGkAbQBlAG8AdQB0AA==</k>
<v>IgAxADUAIgA=</v>
</e>
<ws>
Читается как:
<widgetsettings>
<entry>
<key>alert_bubble_timeout</key>
<value>"15"</value>
</entry>
<widgetsettings>
(Имена тегов интерпретируются свободно;) Я нашел base64 en/decoder, способный обрабатывать utf-16 здесь
PS: Opera установит виджеты, дважды щелкнув их. Таким образом, вы также можете запустить Opera с путем расширения в командной строке. Опера все сделает за вас.
C:\Program Files\Opera\opera.exe C:\Path\To\Extension.oex