Pull to refresh

Comments 8

я уж было подумал msi пакет изготовили)) но и так тоже неплохо, если буду ставить thunderbird учту
Можно не париться с запихиванием расширения в профиль пользователя, а класть его в папку программы в каталог extensions. Тогда оно будет доступно всем пользователям компьютера во-первых и вы не получите конфликта версий расширения из профиля и установленного thunderbird на компьютере во вторых.
к сожалению, данный метод не работает. я пробовал — thunderbird не видит данное расширение автоматически. во-вторых, конфликта версий не будет, файлы в папке перезаписываются. в-третьих, сам thunderbird автоматически видит расширение и его не требуется ни обновлять, ни устанавливать — оно уже (по мнению thunderbird) установлено. Когда я разрабатывал схему обновления lighting, то проверил все эти возможности, о которых вы написали, особенно копирование папки расширений в папку thunderbird в Program Files. Если бы так работало, то не пришлось бы писать скрипт нахождения дефолтного профиля thunderbird. Про конфликт версий — никаких конфликтов: при копировании поверх, thunderbird все отлично отрабатывает, при этом не беспокоит пользователя и если посмотреть в менеджере расширений, то в нем автоматически появляется старшая версия lighting.
Странно, у меня всё работает. Thunder 3.1.x, тот же лайтинг. Ставлю сначала расширение на чистый тандер, потом копирую в папку extensions в програм файлс на все компы — работает без проблем.
тоже странно… у меня данное действо не происходило, thunderbird не подхватывал расширение, скопированное в папку extensions в program files. На win7 пробовали? Просто у меня задача была и для winXP и win7. Возможно в win7 thunderbird вел себя как-то не так, поэтому и пришлось писать скрипт поиска дефолтного профиля thunderbird. Но заметь-те, что в моем случае, у вас не будет сбоев 100%, а в предлагаемом Вами способе у меня происходил сбой.
Спасибо за способ, но могу сказать, что есть способ попроще. Нужно просто скопировать расширение в папку extensions.
Приведу готовый скрипт (необходимости допиливать под себя он не отменяет), который это делает, а заодно и смотрит — установлен ли плагин (если да — то повторно ставить не нужно). Расширения должны находится в папке \\pdc\netlogon\packages\thunderbird-plugins.
Комментарии писать не буду — у кого мозгов хватит, разберется сам. А заниматься копи пастом — только вредить своему мозгу.

var fs, f, ForAppending, ForReading;

ForAppending = 8;
ForReading = 1;

fs = new ActiveXObject("scripting.FileSystemObject");

var WshShell = Wscript.CreateObject("Wscript.Shell");
var WshSysEnv = WshShell.Environment("PROCESS");
var up = WshSysEnv("APPDATA");
var pf = WshSysEnv("PROGRAMFILES");
var strTEMP = WshSysEnv("TEMP");
var thunderbird_path = pf+"\\Mozilla Thunderbird";
var re = new RegExp("^PATH=(.*?)\/(.*)","i");

var packageFolder = "thunderbird-plugins";
var pdc = 'pdc';
var fn = up + "\\Thunderbird\\profiles.ini";

if (!fs.FileExists(fn)) 
  Wscript.Quit(1);
f = fs.OpenTextFile(fn, ForReading);
var prof_name='';
while (!f.AtEndOfStream)
if (re.exec(f.ReadLine()))
{
   prof_name = RegExp.$1+"\\"+RegExp.$2;       
   break;
}
f.Close();

if (prof_name == '')
  Wscript.Quit(1);


var plugins = new Array();


plugins.push(new Array("russian_spellchecking_dictionary-0.4.4-fx+tb+sm.xpi","Russian spellchecking dictionary",1));
plugins.push(new Array("minimizetotray_plus-1.0.8-fx+tb+sb+sm-win.xpi","MinimizeToTray Plus",1));
plugins.push(new Array("contactssidebar-0.8pre2.xpi","Contacts Sidebar",1));
plugins.push(new Array("quote_colors-0.3-tb+sm.xpi","Quote Colors",1));
plugins.push(new Array("extra_folder_columns-1.0-tb.xpi","Extra Folder Columns",1));

for (i in plugins)
  plugins[i][1] = plugins[i][1].toLowerCase();

if (fs.FileExists(thunderbird_path+"\\thunderbird.exe")) 
{      

  fn = up + "\\Thunderbird\\" + prof_name + "\\extensions.rdf";
  
  if (fs.FileExists(fn)) 
  {
    f = fs.OpenTextFile(fn, ForReading);
    while (!f.AtEndOfStream)
    {
      p = f.ReadLine();
      p = p.toLowerCase();
      for (i in plugins)
        if (p.indexOf(plugins[i][1]) != -1)
        {
          plugins[i][2] = 0;
        }
    }
  
    f.Close();
  
    for (i in plugins)
      if (plugins[i][2])
      {
        WshShell.Run("cmd /C copy /Y \"\\\\"+pdc+"\\netlogon\\packages\\"+packageFolder+"\\"+plugins[i][0]+"\" \""+up + "\\Thunderbird\\" + prof_name + "\\extensions\\\"",0,true);
      }
  }
  else
    WshShell.Run("cmd /C copy /Y \\\\"+pdc+"\\netlogon\\packages\\"+packageFolder+"\\*.xpi \""+up + "\\Thunderbird\\" + prof_name + "\\extensions\\\"",0,true);

}
Кто не догадался — нужно просто «запихать» это в logon-скрипт, запускаемый у пользователя.
Допустим так:
start wscript thunderbird-extensions.js
супер! спасибо! тоже классный способ!
Sign up to leave a comment.

Articles