Доброго времени суток. Есть задача. Необходимо не отвлекая сотрудников компании, переустановить программу. т.е. удалить одно приложение (gadwin printscreen) и установить другое (greenshot). Вроде разобрался, старое ПО удаляется, новое устанавливается, все в тихом режиме, но есть одно но, после установки нового ПО выкидывает страничку на сайт оф. разработчика программы. Обращался туда, с вопросом о возможности отключения данной процедуры. Вопрос. Возможно ли перехватить событие(процесс) которое выкидывает на сайт разработчика?
Второстепенная просьба помочь разобраться с кодами возврата. В этом деле новичок.
Выкладываю код:
| Код | var Products = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"; var Products6432 = "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
function GetProductStringProperty(GPSP_reg_key,GPSP_regexp_pattern){ var GPSP_sNames = new Array(); var GPSP_return = new Array(); for (i=0;i<3;i++) { GPSP_return[i]= new Array();} var GPSP_count = 0; var GPSP_Types; try{ var GPSP_objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv"); var GPSP_objInParams = GPSP_objReg.Methods_("EnumKey").InParameters.SpawnInstance_(); GPSP_objInParams.hDefKey = 0x80000002; GPSP_objInParams.sSubKeyName= GPSP_reg_key; var GPSP_objOutParams = GPSP_objReg.ExecMethod_("EnumKey", GPSP_objInParams); var GPSP_sNames = GPSP_objOutParams.sNames.toArray(); for(var GPSP_i=0; GPSP_i<=GPSP_sNames.length-1; GPSP_i++){ var GPSP_reg_key_full = GPSP_reg_key+"\\"+GPSP_sNames[GPSP_i]; var GPSP_DisplayName = GetProductString(GPSP_reg_key_full,"DisplayName"); if(eval("/"+GPSP_regexp_pattern+"/gi").test(GPSP_DisplayName)){ if(GPSP_DisplayName!=null){ GPSP_return[0][GPSP_count] = GPSP_DisplayName; GPSP_return[1][GPSP_count] = GetProductString(GPSP_reg_key_full,"DisplayVersion"); GPSP_return[2][GPSP_count] = GetProductString(GPSP_reg_key_full,"UninstallString") GPSP_count++; } } } return GPSP_return; } catch(GPSP_error){ WScript.Echo(GPSP_error.message); return GPSP_error.message; } finally{ GPSP_objReg = null; GPSP_objInParams = null; GPSP_objOutParams = null; GPSP_return = null; GPSP_i = null; } }
function GetProductString(GPS_reg_key,GPS_property){ try{ var GPS_objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv"); var GPS_objInParams = GPS_objReg.Methods_("GetStringValue").InParameters.SpawnInstance_(); GPS_objInParams.hDefKey = 0x80000002; GPS_objInParams.sSubKeyName = GPS_reg_key; GPS_objInParams.sValueName = GPS_property; GPS_objOutParams = GPS_objReg.ExecMethod_("GetStringValue", GPS_objInParams); return GPS_objOutParams.sValue; } catch(GPS_error){ return GPS_error.message; } finally{ GPS_objReg = null; GPS_objInParams = null; GPS_objOutParams = null; } }
function GetOsArchitecture(){ var RAX32_WshShell = WScript.CreateObject("WScript.Shell"); var RAX32_WshProEnv = RAX32_WshShell.Environment("SYSTEM");
if(RAX32_WshProEnv.Item("PROCESSOR_ARCHITECTURE")=="AMD64")return "64"; if(RAX32_WshProEnv.Item("PROCESSOR_ARCHITECTURE")=="x86")return "32"; }
var WshShell = WScript.CreateObject("Wscript.Shell"); var script_engine = WScript.FullName.toUpperCase().replace(WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%windir%\\system32\\").toUpperCase(),"");
if ((GetOsArchitecture()=="64")&(WScript.Arguments.Count()==0)){ WScript.Quit(WshShell.run(WshShell.ExpandEnvironmentStrings("%windir%\\SysWoW64\\"+script_engine)+' "'+WScript.ScriptFullName+'" 32',0,true)); upper }
var sc1 = GetProductStringProperty(Products,".*Gadwin.*"); var found = false; var result = ""; for(c1 in sc1[0]){ found = true; //if(c1>0){result=result+('\n\r')}; //result=result+sc1[0][c1]+"--"+sc1[1][c1]; WshShell.run('"'+sc1[2][c1]+'" /S',0,true); WshShell.run("Greenshot.exe",0,true); WScript.Quit(0); }
if(!found){WScript.Quit(1)}
|
Заранее спасибо за помощь! |