⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ab-cd.jst

📁 现在很火的邮件客户端软件thunderbird的源码
💻 JST
📖 第 1 页 / 共 2 页
字号:
      winreg.createKey(subkey + "\\InstallInfo","");      winreg.setValueString(subkey, "", "$ProductName$");      // path does not need to be quoted per MS doc      data = fProgram + "chrome\\icons\\default\\messengerWindow.ico,0";      winreg.setValueString(subkey + "\\DefaultIcon", "", data);      data = "\"" + fProgram + "$MainExeFile$\"";      winreg.setValueString(subkey + "\\shell\\open\\command", "", data);      data = "\"" + fProgram + "uninstall\\uninstall.exe\" /ua \"$UserAgent$\" /hs";      winreg.setValueString(subkey + "\\InstallInfo", "HideIconsCommand", data);      // set this value to 0 because we're not creating the mail shortcuts yet.      winreg.setValueNumber(subkey + "\\InstallInfo", "IconsVisible", 0);      data = "\"" + fProgram + "$MainExeFile$\" -silent -nosplash -setDefaultMail";      winreg.setValueString(subkey + "\\InstallInfo", "ReinstallCommand", data);      data = "\"" + fProgram + "uninstall\\uninstall.exe\" /ua \"$UserAgent$\" /ss mail";      winreg.setValueString(subkey + "\\InstallInfo", "ShowIconsCommand", data);    }  }  else  {    logComment("winreg is null");  }}function IsWinnt(){  /* Determines if the script is running under NT or not.   *   */  var winreg = getWinRegistry();  var subkey;  var szCurrentVersion;  winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);  subkey              = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";  szCurrentVersion    = winreg.getValueString(subkey, "CurrentVersion");  logComment("szCurrentVersion: " + szCurrentVersion);  return szCurrentVersion != "";}function registerMainKeys(winreg){  var subkey;  //the name of the subkey you are poking around in  var data;  var err;  winreg.createKey("SOFTWARE\\$CompanyName$","");  subkey  = "SOFTWARE\\$CompanyName$\\$ProductName$";  winreg.createKey(subkey,"");  err     = winreg.setValueString(subkey, "CurrentVersion", "$UserAgent$");  subkey  = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$";  winreg.createKey(subkey,"");  subkey  = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";  winreg.createKey(subkey,"");  err     = winreg.setValueString(subkey, "Install Directory", fProgram);  // now set Mozilla\Mozilla Thunderbird\bin\PathToExe so 3rd party vendors can find our app  subkey  = "SOFTWARE\\Mozilla\\$ProductName$ $UserAgentShort$\\bin";  winreg.createKey(subkey,"");  err     = winreg.setValueString(subkey, "PathToExe", fProgram + "$MainExeFile$");  subkey  = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";  err     = winreg.setValueString(subkey, "PathToExe", fProgram + "$MainExeFile$");}function updateWinReg(){  //Notes:  // can't use a double backslash before subkey - Windows already puts it in.  // subkeys have to exist before values can be put in.  var winreg = getWinRegistry();  var subkey;  //the name of the subkey you are poking around in  var err;  var ikwDefined;  if(winreg != null)   {    /* This will check to see if the user has restricted access or not.     * It checks to see if HKEY_LOCALMACHINE\SOFTWARE is writable.  If     * it is, then access is not restricted.  This is only used to     * determine which Desktop, Programs, and Start Menu folders     * are to used: common or per user     */    restrictedAccess = false;    ikwDefined = typeof(winreg.isKeyWritable);    logComment("winreg.isKeyWritable(): " + ikwDefined);    if(ikwDefined == "function")    {      winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);      if(!winreg.isKeyWritable("SOFTWARE"))        restrictedAccess = true;    }    logComment("restrictedAccess value: " + restrictedAccess);    if(!restrictedAccess)    {      winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);      registerMainKeys(winreg);      // set the App Paths key here      subkey  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\$MainExeFile$";      winreg.createKey(subkey,"");      err     = winreg.setValueString(subkey, "", fProgram + "$MainExeFile$");      err     = winreg.setValueString(subkey, "Path", fProgram);    }    winreg.setRootKey(winreg.HKEY_CURRENT_USER);    registerMainKeys(winreg);  }}function upgradeCleanup(){  // Now clean up Uninstall entries that may be laying around in the  // registry for older versions of the software that we're overwriting/  // upgrading...  var wr = getWinRegistry();  wr.setRootKey(wr.HKEY_LOCAL_MACHINE);  var i = 0;   const uninstallKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";  do {    var key = wr.enumKeys(uninstallKey, i++);    if (!key)      break;    key = uninstallKey + "\\" + key;        // For us to remove the entry from the ARP uninstall list, the install     // folder paths must *match* and the display version strings must *NOT    // MATCH* - i.e. we don't want to remove the entry we just created for    // this version.    var itemInstallFolder = wr.getValueString(key, "InstallLocation");    var thisInstallFolder = wr.getValueString("SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main",                                               "Install Directory");    var itemInstallFolderShortName = File.windowsGetShortName(getFolder("file:///", itemInstallFolder));    var thisInstallFolderShortName = File.windowsGetShortName(getFolder("file:///", thisInstallFolder));        var itemDisplayVersion = wr.getValueString(key, "DisplayVersion");    var thisDisplayVersion = "$UserAgent$";    // It is possible that a user might have installed several products into    // the same directory that have the same "DisplayVersion" (e.g. "1.0")...     // in this case we don't want to trash the Uninstall info for the others    // so we have to be sure to make sure Comment matches... we use Comment    // instead of DisplayName since DisplayName varies from version to version    // as it contains the version number, and this instance of javascript is    // crippled so as not to contain any useful string parsing.    var itemComment = wr.getValueString(key, "Comment");    var thisComment = "$ProductName$";    if ((itemComment == thisComment || itemComment == "Reclaim Your Inbox.") &&         itemInstallFolderShortName == thisInstallFolderShortName &&        thisDisplayVersion != itemDisplayVersion &&         wr.isKeyWritable(key)) {      wr.deleteKey(key);      logComment("Removing obsolete uninstall key with upgrade: " + key);    }  }  while (true);}// end// end - OS type detectionsrDest = $SpaceRequired$:bin;err    = initInstall("@AB_CD@ Langpack", "@AB_CD@", "$Version$");logComment("initInstall: " + err);fProgram = getFolder("Program");logComment("fProgram: " + fProgram);if(verifyDiskSpace(fProgram, srDest)){  var chromeType = LOCALE;  err = addDirectory("",                     "bin",     // dir name in jar to extract                      fProgram,  // Where to put this file (Returned from GetFolder)                      "");       // Force Flag   logComment("addDirectory() returned: " + err);  setPackageFolder(fProgram);  upgradeCleanup();  registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome", "@AB_CD@.jar"), "locale/@AB_CD@/editor/");  registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome", "@AB_CD@.jar"), "locale/@AB_CD@/wallet/");  // check return value  if (err == SUCCESS)  {    updateWinReg();  // Finish registering above marshalling dll's    createShortcuts();    err = performInstall();     logComment("performInstall() returned: " + err);  }  else   {    cancelInstall(err);    logComment("cancelInstall due to error: " + err);  }}else  cancelInstall(INSUFFICIENT_DISK_SPACE);// end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -