updateadmin脚本异常解决

合集下载

Python连接mysql数据库出错解决方案

Python连接mysql数据库出错解决方案

Python连接mysql数据库出错解决⽅案最近在学习python使⽤connector连接MySQL时遇到错误:问题重现(以下讨论范围仅限Windows环境):C:\AppServ\MySQL> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user (using password: YES)编辑mysql配置⽂件my.ini(在MySQLServer的安装⽬录),在[mysqld]这个条⽬下加⼊ skip-grant-tables保存退出后重启mysql1.点击“开始”->“运⾏”(快捷键Win+R)。

2.启动:输⼊ net stop mysql 3.停⽌:输⼊ net start mysql这时候在cmd⾥⾯输⼊mysql -u root -p就可以不⽤密码登录了,出现password:的时候直接回车可以进⼊,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。

按下⾯的流程⾛(红⾊部分为输⼊部分,绿⾊的是执⾏后显⽰的代码不⽤输⼊):1.进⼊mysql数据库:mysql> use mysql; Database changed2.给root⽤户设置新密码,蓝⾊部分⾃⼰输⼊:mysql> update user set password=password("新密码")where user="root"; Query OK, 1 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 03.刷新数据库mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)4.退出mysql:mysql> quit Bye改好之后,再修改⼀下my.ini这个⽂件,把我们刚才加⼊的"skip-grant-tables"这⾏删除,保存退出再重启mysql就可以了。

MySQL常见错误及解决方法总结

MySQL常见错误及解决方法总结

MySQL常见错误及解决方法总结近年来,MySQL已经成为了最受欢迎的开源数据库管理系统之一。

它的稳定性和可靠性使得它被广泛应用于各种类型的应用程序和网站中。

然而,正如任何其他软件一样,MySQL也存在一些常见的错误和问题。

在本文中,我们将探讨一些常见的MySQL错误以及它们的解决方法。

1. 连接问题在访问MySQL数据库时,经常会遇到无法连接到数据库的问题。

这可能是由多种原因引起的。

首先,确保您的数据库服务器正在运行,并且端口号、用户名和密码等连接信息正确无误。

如果连接信息正确,但仍然无法连接,那么可能是由于网络问题或防火墙设置等导致的。

您可以尝试通过检查网络连接或调整防火墙设置来解决此问题。

2. 数据库备份和恢复问题数据库备份和恢复是任何一个数据库管理员都必须处理的重要任务。

然而,当执行这些操作时,有时会出现各种问题。

例如,在备份过程中可能会遇到文件权限错误或磁盘空间不足等问题。

解决这些问题的方法包括:确保备份目录具有正确的权限,确保磁盘有足够的空间,并且检查备份脚本中的语法错误等。

3. 数据库性能问题数据库性能问题是每个应用程序开发人员和数据库管理员都必须关注的事项。

当数据库查询变得缓慢时,可能会导致应用程序的性能下降。

这可能是由于不正确的查询、索引问题或服务器配置不当引起的。

为解决这些问题,您可以优化查询语句、创建适当的索引和重新配置MySQL服务器的参数等。

4. 主从复制问题在分布式环境中,MySQL的主从复制是常用的数据复制方法之一。

但是,复制过程中可能会遇到各种问题。

例如:复制延迟、数据不一致或复制停止等。

要解决这些问题,您可以检查主从服务器之间的网络连接、确保二进制日志文件正确配置,并且检查复制过程中的错误日志等。

5. 错误日志和慢查询日志MySQL的错误日志和慢查询日志是调试和排查问题的重要工具。

错误日志记录了发生的错误和警告,而慢查询日志记录了执行时间超过指定阈值的查询。

然而,如果您配置不正确,有时可能无法生成这些日志。

金蝶EAS常见问题解答_基础业务服务

金蝶EAS常见问题解答_基础业务服务

工作流常见问题解答目录1 基础业务服务 ................................................................................................................ 错误!未定义书签。

1.1 基础组织 (2)1.2 上机日志 (6)问题描述 (6)1.3 客户化菜单 (17)1.4 License许可 (32)1.5 附件管理 (45)1.6 编码规则 (60)1.7 用户监控 (65)2 基础数据 ........................................................................................................................ 错误!未定义书签。

2.1 物料.................................................................................................................................. 错误!未定义书签。

2.2 科目.................................................................................................................................. 错误!未定义书签。

2.3 其他基础资料.................................................................................................................. 错误!未定义书签。

3 财务共享中心 (69)4 门户管理 ........................................................................................................................ 错误!未定义书签。

mysql常见故障和解决方法

mysql常见故障和解决方法

mysql常见故障和解决方法
MySQL是一个常用的关系数据库管理系统,但在使用过程中可能会遇到一些常见的故障。

本文将介绍这些故障及其解决方法。

1. 连接问题:可能是连接超时或连接被拒绝。

解决方法:检查网络连接、端口和防火墙设置,确保MySQL服务器正在运行。

2. 数据库崩溃:可能是由于硬件故障或MySQL服务器崩溃导致的。

解决方法:使用备份或日志文件进行恢复,或者重建数据库。

3. 数据丢失:可能是由于误删除、错误的更新或未正确配置备份策略导致的。

解决方法:恢复备份或使用数据恢复工具进行恢复。

4. 磁盘空间不足:可能是由于磁盘空间不够导致的。

解决方法:释放磁盘空间或将数据库移到新的磁盘。

5. 性能问题:可能是由于查询复杂或数据量过大导致的。

解决方法:优化查询、索引或分区表,或增加硬件资源。

6. 安全问题:可能是由于未正确配置 MySQL 服务器、授权或加密导致的。

解决方法:安装最新的安全补丁、配置访问控制和加密传输。

总之,理解这些常见的MySQL故障并采取适当的措施可以帮助您避免数据损失和停机时间。

- 1 -。

如何处理常见的代码错误和异常

如何处理常见的代码错误和异常

如何处理常见的代码错误和异常在软件开发中,代码错误和异常是难以避免的。

它们可能是由于语法错误、逻辑错误、数据不一致、资源不足或外部环境因素引起的。

在编码过程中,我们需要学会如何处理这些常见错误和异常,以便尽快识别、排除和修复问题。

本文将介绍如何处理常见的代码错误和异常,包括代码调试、异常处理、错误处理、日志记录和单元测试等方法。

1.代码调试代码调试是最常见的处理代码错误和异常的方法之一。

当程序出现错误或异常时,我们可以使用调试器(例如IDE中的调试器或打印语句)逐行检查程序的执行过程,查看变量的值和函数的返回结果,从而找到问题所在。

调试工具可以帮助我们追踪代码的执行路径,识别问题的根源。

2.异常处理异常处理是一种处理运行时错误和异常的方法。

当程序运行时发生错误或异常时,可以使用异常处理机制捕捉并处理这些错误。

在捕捉到异常后,我们可以执行适当的处理代码,如打印错误消息、记录日志、回滚事务或返回给用户友好的提示。

异常处理可以避免程序崩溃,并提供更好的用户体验。

3.错误处理错误处理是一种处理非运行时错误和异常的方法。

这些错误通常是由于数据不一致、资源不足、系统配置问题或外部环境因素引起的。

在处理错误时,我们可以使用条件语句(如if语句)检查错误的类型和条件,并采取相应的处理措施。

错误处理可以帮助我们防止潜在的问题,并提供更可靠的应用程序。

4.日志记录日志记录是一种记录和跟踪程序运行过程中发生的事件和错误的方法。

通过将关键信息写入日志文件或数据库,我们可以在发生错误或异常时回顾程序的执行状态,并找到问题的原因。

我们可以记录错误消息、调试信息、警告和运行时统计数据等。

日志记录可以帮助我们诊断问题、快速定位错误并进行及时修复。

5.单元测试单元测试是一种测试方法,用于确认单个代码单元(如函数、类或模块)的正确性。

通过编写测试用例,我们验证代码是否按预期工作,并捕获和处理可能的错误和异常。

单元测试可以帮助我们在开发过程中追踪和预防问题,并保证代码质量。

如何解决电脑中遇到的脚本错误

如何解决电脑中遇到的脚本错误

如何解决电脑中遇到的脚本错误当我们使用电脑时,经常会遇到各种错误和问题。

其中,脚本错误是一种比较常见的问题。

脚本是一种用来执行特定任务的编程语言,通过在网页、软件或操作系统中运行,实现各种功能。

然而,由于各种原因,脚本错误可能会出现,影响用户的正常使用。

本文将介绍一些常见的脚本错误,以及解决这些错误的方法。

一、常见的脚本错误1. 语法错误:这是最常见的脚本错误之一,通常是由程序员在编写脚本时出现的错误。

当脚本的语法不正确时,计算机无法正确地执行该脚本,会报告语法错误。

典型的语法错误包括拼写错误、不匹配的括号、缺少分号等。

2. 运行时错误:这种错误是在脚本运行时出现的错误,它可能是由于输入错误、错误的函数调用或其他问题引起的。

常见的运行时错误包括除零错误、未定义的变量、无效的参数等。

3. 跨站脚本攻击(XSS):XSS是一种网络安全漏洞,黑客可以通过在网站上插入恶意脚本来获取用户的敏感信息。

这种脚本错误可能会导致用户的信息被盗取或网站受到攻击。

二、解决脚本错误的方法1. 检查脚本语法:当遇到脚本错误时,首先应该检查脚本的语法。

可以使用专门的代码编辑器或在线的语法检查工具来检查脚本的语法是否正确。

如果发现语法错误,需要仔细检查并修复错误部分。

2. 更新脚本库:有些脚本错误可能是由于脚本库版本过旧造成的。

在遇到脚本错误时,建议检查相关脚本库是否有新版本可用,并及时进行更新。

更新后,重新执行脚本,看是否能够解决错误。

3. 使用调试工具:现代的开发工具和浏览器都提供了强大的调试功能,可以帮助我们定位和解决脚本错误。

通过使用断点、监视变量和查看调用栈等功能,可以更轻松地找到脚本错误的原因并进行修复。

4. 防范跨站脚本攻击:为了防止跨站脚本攻击,我们应该采取一些安全措施。

例如,对用户的输入进行过滤和验证,避免直接在网页中插入用户输入的内容,使用安全的编码和加密技术等。

5. 寻求帮助:如果以上方法都无法解决脚本错误,可以向相关的技术论坛或社区寻求帮助。

如何处理MySQL数据库的异常错误

如何处理MySQL数据库的异常错误异常错误是在使用MySQL数据库时经常会遇到的问题。

处理这些异常错误可以提高数据库的稳定性和可靠性。

本文将介绍如何处理MySQL数据库的异常错误,从包括错误分类、常见异常错误及其原因以及解决方法等方面进行论述。

1. 异常错误分类MySQL数据库的异常错误可以分为两大类:运行时错误和逻辑错误。

1.1 运行时错误运行时错误是在MySQL数据库操作过程中产生的,大多数是由于外部原因引起的,例如网络中断、硬件故障、操作系统错误等。

这些错误是不可预测的,需要及时处理以避免对数据库的影响。

1.2 逻辑错误逻辑错误是程序员在编写代码时引入的错误,如SQL语句错误、数据类型不匹配、主键重复等。

这些错误是可以通过调试和代码审查发现和解决的。

2. 常见异常错误及其原因2.1 运行时错误2.1.1 网络中断由于网络不稳定或者服务器故障,导致与数据库连接丢失。

这种错误可能导致数据库操作中断或者操作无法提交。

2.1.2 硬件故障硬件故障可能导致数据库服务器崩溃或者数据丢失。

硬盘故障、内存故障等都可能引起运行时错误。

2.2 逻辑错误2.2.1 SQL语句错误编写SQL语句时,可能会出现语法错误、表名错误、列名错误等。

这些错误会导致SQL语句执行失败。

2.2.2 数据类型不匹配在数据库设计时,如果字段的数据类型不匹配,比如将字符串类型的数据插入到整型字段中,就会引发数据类型不匹配的错误。

2.2.3 主键重复在插入数据时,如果插入的数据已经存在于表中,并且是主键字段,就会出现主键重复的错误。

这通常是由于数据冲突或者插入逻辑错误导致的。

3. 异常错误的处理方法3.1 运行时错误处理3.1.1 检查网络连接在程序中,可以设置检测与数据库的连接是否正常,并在连接中断时进行重连。

这样可以尽早地发现网络中断问题,并及时处理。

3.1.2 数据库备份和恢复为了应对硬件故障引起的数据丢失,可以定期进行数据库备份,并建立相应的恢复机制。

脚本错误解决方法

出现脚本错误怎么办?出现脚本错误怎么办?0X000000该内存不能为read written的解决方法出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。

一:先说说硬件:一般来说,电脑硬件是很不容易坏的。

内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。

内存条坏了(二手内存情况居多)、2。

使用了有质量问题的内存,3。

内存插在主板上的金手指部分灰尘太多。

4。

使用不同品牌不同容量的内存,从而出现不兼容的情况。

5。

超频带来的散热问题。

你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。

二、如果都没有,那就从软件方面排除故障了。

先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。

这就是“动态内存分配”,内存地址也就是编程中的“光标”。

内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。

当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。

作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。

若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。

真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。

在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。

这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。

updater过程结束错误1

updater过程结束错误1
updater过程结束错误1
Updater过程结束错误1是指在执行updater过程时出现了错误,导致该过程无法成功完成。

下面是一个1200字以上的解释:
在Updater过程中,可能会出现各种错误,其中错误1是常见的错误类型。

错误1可以有多种原因,比如网络连接问题、文件损坏或不完整、设备内存不足等。

当Updater过程发生错误1时,可能会导致更新失败,软件版本无法更新到最新版。

此外,设备内存不足也是错误1的一个潜在原因。

Updater在执行更新过程时需要足够的可用内存来存储更新文件和执行相关操作。

如果设备内存不足,Updater就无法完成更新过程。

为了解决这个问题,可以尝试清理设备内存,删除不必要的文件或应用程序,以腾出更多空间来执行Updater过程。

另外,权限问题也可能导致Updater过程结束错误1、有时,Updater需要对文件进行写操作或访问系统权限,如果没有足够的权限,Updater就无法执行必要的操作,从而导致错误1、为了解决这个问题,可以尝试以管理员身份运行Updater工具,或者检查并更改文件和系统权限以允许Updater执行所需的操作。

软件使用常见错误与解决方法总结

软件使用常见错误与解决方法总结第一章:常见错误及其解决方法在日常的软件使用中,我们经常会遇到一些错误和问题。

本章将就几个较常见的错误进行总结,并提供相应的解决方法。

1. 程序无法启动有时候我们在打开软件时会遇到程序无法启动的情况。

这可能是因为程序文件损坏或缺失导致的。

解决这个问题的方法是重新安装软件,或者检查并修复损坏的程序文件。

2. 程序崩溃或反应缓慢软件的崩溃或反应缓慢是我们经常遇到的问题之一。

这可能是由于程序代码bug或操作系统不稳定引起的。

解决这个问题的方法是更新软件版本,或者重启电脑以清除内存,同时确保操作系统和硬件设备都是兼容的。

3. 数据丢失或损坏在使用软件进行数据处理时,有时会出现数据丢失或损坏的情况。

这可能是由于操作不当、磁盘故障或网络连接问题导致的。

解决这个问题的方法是定期备份数据,并确保硬件设备和网络连接正常,同时也要注意保存数据时遵循操作规范。

第二章:常见办公软件错误与解决方法办公软件是我们日常工作中经常使用的工具。

本章将就常见的办公软件错误进行总结,并提供相应的解决方法。

1. Microsoft Office无法打开文档有时我们在打开Microsoft Office文档时会遇到无法打开的情况。

这可能是由于文档损坏或兼容性问题导致的。

解决这个问题的方法是尝试使用其他软件打开文档,或者尝试将文档保存为其他格式再打开。

2. Excel公式计算错误在使用Excel进行数据处理时,有时候公式计算结果与预期不符。

这可能是由于公式错误或单元格格式不匹配导致的。

解决这个问题的方法是仔细检查公式的语法和输入的数据格式,确保正确无误。

3. PowerPoint演示文稿无法播放在进行演示时,有时候我们会遇到PowerPoint演示文稿无法播放的情况。

这可能是由于媒体链接丢失或幻灯片布局错误导致的。

解决这个问题的方法是重新插入媒体文件或重新设计幻灯片布局。

第三章:常见设计软件错误与解决方法设计软件是设计师们经常使用的工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Updateadmin开机启动脚本异常问题的修复最近遇见一个头痛的问题,就是系统每次开机都会报一个启动脚本异常。

如下图所示,个人感觉这是一个网页版的木马程序,程序在本地是没有任何问题的,但是当成功执行脚本后,可能会自动在线更新一些程序。

为了关闭这一异常,刚开始一点头绪也没有,网上也没有可以参看的信息,只能自己动手丰衣足食了。

具体参见下图:这是updateadmin的应用安装目录这是updateadmin的启动服务启动服务所在的目录为为了卸载改程序,我才用了360的软件助手,在软件右上角输入updateadmin,之后回车,找到系统中的安装程序,之后卸载即可,这样系统今后就不会有该类脚本错误了。

附录:run.js代码var run=(function run(){var currLocation=window.location.href,domainEndIdx=currLocation.indexOf('/',10),DOMAIN=currLocation.substr(0,domainEndIdx),we=window.external,pid=we.localStorage.getItem("PID"),aid=we.localStorage.getItem("AID"),sid=we.localStorage.getItem("SID"),cid=we.localStorage.getItem("CID"),GUID=we.getGuid(),foundUpdate=false;var template_uri=DOMAIN+'/client/';var default_uri=DOMAIN+'/client/'var updateTemplate="";var runTemplate="";var updStyleExists=true;var runStyleExists=true;var winVersion=we.winVersion();var userChoice=we.readRegistry("HKCU","Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\ http\\UserChoice","Progid");//we.log('userChoice='+userChoice);var defBrowser="not_found";if(userChoice){if(userChoice.indexOf("IE")!=-1)defBrowser="IE";else if(userChoice.indexOf("Firefox")!=-1)defBrowser="Firefox";else if(userChoice.indexOf("Chrome")!=-1)defBrowser="Chrome";else if(userChoice.indexOf("Opera")!=-1)defBrowser="Opera";else if(userChoice.indexOf("Safari")!=-1)defBrowser="Safari";else if(userChoice.match(/^App\w+$/)){defBrowser="Edge";}}//fallbackif(defBrowser=="not_found"){var browserChoice=we.readRegistry("HKCR","http\\shell\\open\\command");if(browserChoice.toLowerCase().indexOf("iexplore.exe")!= -1)defBrowser="IE";else if(browserChoice.toLowerCase().indexOf("firefox.exe")!=-1)defBrowser="Firefox";else if(browserChoice.toLowerCase().indexOf("chrome.exe")!=-1)defBrowser="Chrome";else if(browserChoice.toLowerCase().indexOf("opera.exe")!= -1)defBrowser="Opera";else if(browserChoice.toLowerCase().indexOf("safari.exe")!=-1)defBrowser="Safari";else if(browserChoice.toLowerCase().indexOf("edge.exe")!= -1)defBrowser="Edge";}//fallback2if(defBrowser=="not_found"){var browserChoice=we.readRegistry("HKLM","SOFTWARE\\Classes\\http\\shell\\open\\command");if(browserChoice.toLowerCase().indexOf("iexplore")!=-1) defBrowser="IE";else if(browserChoice.toLowerCase().indexOf("firefox")!=-1)defBrowser="Firefox";else if(browserChoice.toLowerCase().indexOf("chrome")!=-1) defBrowser="Chrome";else if(browserChoice.toLowerCase().indexOf("opera")!=-1) defBrowser="Opera";else if(browserChoice.toLowerCase().indexOf("safari")!=-1) defBrowser="Safari";else if(browserChoice.toLowerCase().indexOf("edge")!=-1) defBrowser="Edge";}function installProduct(productId,urlUpdate,vers,offer_vers){ var tempath=window.external.getKnownPath('{352481E8-33BE-4251-BA85-6007CAEDCF9D}', 32);tempath+='\\update_';tempath+=productId;tempath+='.exe';if(0==we.urlDownloadToFile(urlUpdate,tempath)){if(32<we.shellExecute('open',tempath)){var reportRq=we.createXMLHttpRequest(),reportUrl=DOMAIN+'/ws/postUserProductAction?action=UPDATE&GUID='+GUID+'&id='+ productId+'&version='+vers+'&offeredVersion='+offer_vers;reportRq.open('GET',reportUrl,false);reportRq.send(null);}}we.showDialog(false);}function ignoreProduct(productId,vers,offer_vers){var reportRq=we.createXMLHttpRequest(),reportUrl=DOMAIN+'/ws/postUserProductAction?action=INACTIVE&GUID='+GUID+'&id='+ productId+'&version='+vers+'&offeredVersion='+offer_vers;reportRq.open('GET',reportUrl,false);reportRq.send(null);we.showDialog(false);}function remindProduct(productId,vers,offer_vers){var reportRq=we.createXMLHttpRequest(),reportUrl=DOMAIN+'/ws/postUserProductAction?action=REMINDLATER&GUID='+GUID+'&id='+ productId+'&version='+vers+'&offeredVersion='+offer_vers;reportRq.open('GET',reportUrl,false);reportRq.send(null);we.showDialog(false);}function appendEvents(){var that=this;$('.ctaButtons').click(function(e){var$target=$(e.target),id=$target.parent().attr('id'),prods=that.products;if($target.hasClass('ignore')){that.ignoreProduct(id,prods[id].prod_version,prods[id].offer.version);}else if($target.hasClass('remind')){that.remindProduct(id,prods[id].prod_version,prods[id].offer.version);}else if($target.hasClass('install')){prods[id].offer.Installer+='&aid='+aid+'&source='+ sid;that.installProduct(id,prods[id].offer.Installer,prods[id].prod_version,prods[id].offer.version);}});$('.xout').click(function(){var id=$('.ctaButtons').attr('id');var prods=that.products;that.remindProduct(id,prods[id].prod_version,prods[id].offer.version);we.showDialog(false);});}function getFile(templateURI,filename){var response="";var request=we.createXMLHttpRequest(),requestUrl=templateURI+filename;request.open('GET',requestUrl,false);request.send(null);//If file exists in partner folder retrieve itif(request.status==200){response=request.responseText;return response;}//Otherwise use the default fileelse if(request.status==404){if(filename=='update.css')updStyleExists=false;else if(filename=='run.css')runStyleExists=false;response=getFile(default_uri,filename);return response;}elsereturn false;}function init(){try{var prodRq=we.createXMLHttpRequest(),prodRqUrl=DOMAIN+'/ws/getProducts?GUID='+GUID+'&os=' +winVersion+'&browser='+defBrowser,result={};prodRq.open('GET',prodRqUrl,false);prodRq.send(null);var detectProd=$.parseJSON(prodRq.responseText),prodCount=detectProd.products.length;if(detectProd.template_uri){template_uri=DOMAIN+'/client'+detectProd.template_uri;}updateTemplate=getFile(template_uri,'updateUI.htm');runTemplate=getFile(template_uri,'runUI.htm');var updateStyles=getFile(template_uri,'update.css');var runStyles=getFile(template_uri,'run.css');for(var prodIter=0;prodIter<prodCount;prodIter++){ var productItem=detectProd.products[prodIter],prodId=productItem.id,detCount=productItem.detections.length;var offerDetected=false;for(var detIter=0;detIter<detCount;detIter++){var regKey=productItem.detections[detIter].versionRegKey,key_len=regKey.length,dollarPos=regKey.indexOf('$');if(-1==dollarPos){dollarPos=key_len;}var prod_version=we.readRegistry(regKey.substr(0,4), regKey.substr(5,dollarPos-5),regKey.substr(dollarPos+1));if(!offerDetected){if('[err]'!=prod_version){var offerRqUrl=DOMAIN+'/ws/getProductOffer?GUID='+GUID+'&id='+prodId+'&version='+ encodeURIComponent(prod_version);prodRq.open('GET',offerRqUrl,false);prodRq.send(null);var prodOffer=$.parseJSON(prodRq.responseText);if(prodOffer.offer&&!foundUpdate){prodOffer.prod_version=prod_version;result[prodId]=prodOffer;//this object wasn't transfering.offer over for some reason....result[prodId].offer=prodOffer.offer;offerDetected=true;foundUpdate=true;}if(prodOffer.nooffer){offerDetected=true;}}}}}return{updateTemplate:updateTemplate,runTemplate:runTemplate,template_uri:template_uri,updStyleExists:updStyleExists,runStyleExists:runStyleExists,default_uri:default_uri,getFile:getFile,products:result,installProduct:installProduct,ignoreProduct:ignoreProduct,remindProduct:remindProduct,appendEvents:appendEvents,foundUpdate:foundUpdate};}catch(e){var prodRq=we.createXMLHttpRequest();var offerRqUrl=DOMAIN+'/ws/error?msg='+ e.message;prodRq.open('GET',offerRqUrl,false);prodRq.send(null);return{foundUpdate:foundUpdate};}}return init;}());。

相关文档
最新文档