extensions в профиле Mozilla Firefox
у каждого пользователя свой уникальный профиль в Mozilla Firefox, задача в том, что нужно каким-то образом определить имя профиля и скопировать в директорию C:\Users\User\AppData\Roaming\Mozilla\Firefox\Profiles\<профиль>\extensions свое расширение, хотелось бы как то это автотизировать, но не могу понять, как определять данный профиль
|
Цитата:
Цитата x0r
Чё за расширение? способ есть и не один. »
|
Да без разницы. Способ ровно один — в соответствии со стандартами.
|
Iska, подскажи, а какой способ?
|
разницо есть. Если это очередной говно-рекламный плуг или другой мегокалькулятор(всем ощень-на нужный), который школьнег хочет тулить всем подряд в скрытой установке, то чем дольше он будет в неведении, тем меньше от него будет проблемм.
|
icetanker, Вы потрудились бы для начала пользоваться поиском.
Повторю свой ответ:
Цитата:
Цитата Nordek
На Ваш вопрос даже отвечать нет необходимости, поскольку Google способен найти интересующую Вас информацию. »
|
Если не верите, то: Пожалуйста.
|
Profile_folder_-_Firefox
если из самого FF, нопример CustomButtons или самого расширения, то
Код:
var prof = Services.dirsvc.get('ProfD', Ci.nsIFile);
prof.append("extensions");
или
Код:
var file= Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
file.append("extensions");
можно из cmd\js (тут я не особо) Профиль лежит в
Код:
%APPDATA%\Mozilla\Firefox\Profiles
а там(..\) файл profiles.ini где указаны имена папок профиля. Нужно его разобрать , взяв строку с путем.
раньше можно было проще, была переменная %MOZ_PROFILE_PATH% , щас вроде убрали.
|
Nordek, не верю. Профиль может быть не в %APPDATA%\Mozilla\Firefox. В profiles.ini может быть более одного профиля. Профили могут иметь как относительные, так и абсолютные пути. Кодировка файла тоже никак не учитывается.
|
Чего остановился? Продолжай, а я послушаю. Ваше предложение выглядит незаконченным.
Цитата:
Цитата Iska
...так и абсолютные пути. Кодировка файла тоже никак не учитывается... »
|
... также если два и более профилей, "может быть" использован последний профиль (первый или первые два пропущены).
P.S Изначально подразумевал по умолчанию. Это или это не подразумевал.
|
Nordek, вот именно это и надо было говорить, только не мне и сейчас, а автору вопроса и сразу.
|
Файл 145243
cmd
Код:
@Echo Off
:: путь к моему файлу, который нужно скопировать
Set myfile=ru.cryptopro.nmcades@cryptopro.ru.xpi
:: путь к ini файлу, из которого нужно прочитать название папки профиля
Set pathini=%appdata%\Mozilla\Firefox\profiles.ini
:: путь, по которому нужно будет создать этот профиль и потом скопировать мои файл и папку
Set outfolder=%appdata%\Mozilla\Firefox
:: читаем название папки профиля из ini файла
For /f "tokens=2 delims==" %%i In ('FindStr /b "Path=" "%pathini%"') Do Set fPath=%%i
:: получаем полный путь папки профиля и правим в нем прямой слеш на обратный
Set fPath=%outfolder%\%fPath:/=\%
Echo %fPath%
SetLocal EnableExtensions EnableDelayedExpansion
Set "File="%fPath%\extension.json""
rem Set "File=extension.json"
Set "Rep1="active":true""
Set "Rep2="userDisabled":false""
>"%File%.bat.tmp" (FOR /F "usebackq delims=" %%s IN (`More "%File%"`) DO Echo %%s)
Set /A N1=0,N2=0,NN=0
FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N ""active":false"" "%File%.bat.tmp"`) DO Set N1=%%n
FOR /F "usebackq Skip=2 delims=[]" %%n IN (`Find /N ""userDisabled":true"" "%File%.bat.tmp"`) DO Set N2=%%n
>"%File%" (FOR /F "usebackq delims=" %%s IN (`More "%File%.bat.tmp"`) DO (
Set /A NN+=1
If Not !NN! EQU %N1% If Not !NN! EQU %N2% Echo %%s
If !NN! EQU %N1% Echo %Rep1%
If !NN! EQU %N2% Echo %Rep2%
))
DEL "%File%.bat.tmp" 2>NUL
Exit
получилось скопировать файл в папку extension, только теперь не получается отредактировать сам файл extensions.json
хочу найти значения у параметров "active":false,"userDisabled":true у самого плагина и изменить их на "active":true,"userDisabled":false
подскажите, где может быть ошибка?
|
Цитата:
Цитата icetanker
подскажите, где может быть ошибка? »
|
В выборе языка реализации. Возьмите PowerShell — тем более, что нынче в нём есть такие командлеты, как ConvertFrom-Json и ConvertTo-Json, а равным образом не будет проблем с юникодом.
|
Iska, а с помощью cmd не получиться никаким образом? или пример какой-нибудь на powershell?
|
icetanker, я вижу очень много проблем на этом пути, и вовсе не уверен, что все они решаемы.
|
Iska, у Вас нет примера, как можно это реализовать с помощью powershell?(почитал по powershell, честно говоря, не очень понятно)
|
icetanker, нет, готового примера для xpi без install.rdf у меня нет.
|
Iska, а на vbs возможно реализовать?
|
Цитата:
Цитата icetanker
Iska, а на vbs возможно реализовать? »
|
Полагаю, можно, но возни будет вдвое-втрое больше: встроенной поддержки UTF-8 нету — надо будет заниматься конвертацией через ADODB.Stream, также придётся самому парсить и разбирать-собирать JSON.
|
Время: 13:58.
© OSzone.net 2001-