📄 ab-cd.jst
字号:
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 + -