рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрдЪ рд╡реАрдмреАрдПрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛

рдмреИрд╕рд╛рдЦреА


рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред рдореИрдВ рдПрдХ рдмреИрд╕рд╛рдЦреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрдЪ рд╡реАрдмреАрдПрд╕рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ (рдпрд╛ "рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ") рдХреЗ рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрдВрдбреЛрдХреЛрдб рд╕реЗ рдПрд▓рд░реНрдЬреА рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред
рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдмрд╛рд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рджреГрд╢реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдХрд╛рд░реНрдп рдкрд░ рдПрдХ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рдирд┐рд░реНрдгрдп рдХреЗ рджреМрд░рд╛рди рдЖрдпрд╛ рдерд╛ред рдФрд░, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рд╣рдорд╛рд░реЗ рд╣реЗрд▓реНрдкрдбреЗрд╕реНрдХ рдЬреИрд╕реЗ рдЖрдИрдбреАрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрд╕рдВрдЧрдд рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ, рдХреЗрд╡рд▓ VBA рдФрд░ WSH "рдХрд╛рдиреВрдиреА" рд╡рд╛рд▓реЗ рдмрдиреЗ рд╣реБрдП рд╣реИрдВред рдЙрд╕ рд╕рдордп, рдмрд╛рдж рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдФрд░ рдореИрддреНрд░реАрдкреВрд░реНрдг рддрд░реАрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдиреЗ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛:

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

рд╡рд┐рдкрдХреНрд╖:

рд╡рд╛рд╕реНрддрд╡рд┐рдХ:


Mproclite.vbs рдХрд╛ рд╣рд▓реНрдХрд╛ рд╕рдВрд╕реНрдХрд░рдг:


option explicit launch "base" ' main programm section sub base() startproc "msg" startproc "msg" startproc "msg" msgbox "base, id = " & id, 64 free id end sub sub msg() msgbox "msg, id = " & id, 64 free id end sub ' do not modify service section sub launch(byval destination) dim job executeglobal "dim scene, container, signature, subname, jobs, id, state, release" release = false if not wscript.arguments.named.exists("task") then dim elt executeglobal "dim found, lost" id = 0 found = 0 lost = 0 signature = "" randomize do signature = signature & hex(rnd * 16) loop while len(signature) < 16 set scene = me set jobs = createobject("Scripting.Dictionary") set jobs(0) = scene set container = getobject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}") container.putproperty signature, scene startproc destination on error resume next do until (lost >= found) or release for elt = found to 1 step -1 if typename(jobs(elt)) = "Object" then lost = lost + 1 jobs(elt) = empty end if err.clear wscript.sleep 1 next loop release = true executeglobal "scene_beforeterminate" for elt = found to 1 step -1 if typename(jobs(elt)) = "VBScriptTypeInfo" then jobs(elt).wscript.timeout = 1 jobs(elt).wscript.quit err.clear nojobs = false end if wscript.sleep 1 next container.quit else job = split(wscript.arguments.named("task"), ";") signature = cstr(job(0)) id = clng(job(1)) subname = cstr(job(2)) do for each container in createobject("Shell.Application").windows if isobject(container.getproperty(signature)) then exit do end if next wscript.sleep 1 loop set scene = container.getproperty(signature) set jobs = scene.jobs state = 4 set jobs(id) = me executeglobal subname state = 24 do until release wscript.sleep 10 loop state = 28 end if end sub function startproc(subname) startproc = createproc(subname) joint startproc, 4, 0 REM do while getstate(startproc) < 4 REM wscript.sleep 10 REM loop end function function createproc(subname) if me is scene then if not release then found = found + 1 createproc = found set jobs(createproc) = nothing createobject("WScript.Shell").exec("""" & wscript.fullname & """ """ & wscript.scriptfullname & """ ""/task:" & join(array(signature, createproc, subname), ";") & """") end if else createproc = scene.createproc(subname) end if end function function getjob(target) on error resume next if jobs.exists(target) then set getjob = jobs(target) if err.number = 0 then exit function err.clear end if set getjob = nothing end function sub share(varname, value) scene.newvar varname if isobject(value) then execute "set scene." & varname & " = value" else execute "scene." & varname & " = value" end if end sub sub newvar(varname) executecommand "dim " & varname end sub sub executecommand(command) executeglobal command end sub function getstate(target) dim elt if jobs.exists(target) then on error resume next set elt = jobs(target) getstate = elt.state if err.number <> 0 then if not(elt is nothing) then getstate = 64 else getstate = 1 end if end if set elt = nothing else getstate = 64 end if end function function isresponsive(target) isresponsive = cbool(getstate(target) and 28) end function sub free(target) if jobs.exists(target) then on error resume next jobs(target).release = true else dim elt, subname for elt = scene.found to 1 step -1 on error resume next subname = jobs(elt).subname if subname = target then free jobs(elt).id end if err.clear next end if end sub function joint(target, state, timeout) dim reftime reftime = timer on error resume next if jobs.exists(target) then if isnumeric(target) then do while getstate(target) < state if timeisout(timeout, reftime) then joint = false exit function end if wscript.sleep 10 loop else dim elt, subname for elt = scene.found to 1 step -1 subname = jobs(elt).subname err.clear if subname = target then do while getstate(target) < state if timeisout(timeout, reftime) then joint = false exit function end if wscript.sleep 10 loop end if err.clear next end if end if joint = true end function function timeisout(timeout, reftime) if timeout > 0 then dim delta delta = timer - reftime if delta < 0 then delta = delta + 86400 if delta > timeout then timeisout = true end if else timeisout = false end if end function sub interrupt(target, timeout) if jobs.exists(target) then on error resume next jobs(target).wscript.timeout = timeout jobs(target).wscript.quit else dim elt, subname for elt = scene.found to 1 step -1 on error resume next subname = jobs(elt).subname if subname = target then interrupt jobs(elt).id end if err.clear next end if end sub sub push(name, value) container.putproperty name, value end sub function pop(name) on error resume next if isobject(container.getproperty(name)) then set pop = container.getproperty(name) else pop = container.getproperty(name) end if end function 


рд╡рд┐рд╡рд░рдг:


рдкреНрд░рдХрд╛рд╢ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдмрд╣реБрдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдВрддреНрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

рд╕рдмрдорд┐рд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
рдпрд╣ рд╕реЗрд╡рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣рдореЗрд╢рд╛ рдЗрд╕рдХреА рдХреЙрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рд╕рдмрдирд╛рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдп рдЙрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рддрд░реНрдХ рдореБрдЦреНрдп рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ:

startproc (рд╕рдмрдирд╛рдо)
рд╕рдмрдирд╛рдо - рд▓реЙрдиреНрдЪ рджреЗрдЦреЗрдВ ()ред
рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ 4 рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдП (getstate () рджреЗрдЦреЗрдВ), рдЬрдм рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ Me рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рдЪрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрдИрдбреАред

createproc (рд╕рдмрдирд╛рдо)
рд╕рдмрдирд╛рдо - рд▓реЙрдиреНрдЪ рджреЗрдЦреЗрдВ ()ред
рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП, рдПрдХ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИ - рд░рдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрдИрдбреАред рдПрдХ рд▓реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП startproc () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗред

рдЧреЗрдЯрдЬреЙрдм (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдИрдбреА рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рд╕рдмрдирд╛рдоред
рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдИрдбреА рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ Me рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ - рдХреБрдЫ рднреА рдирд╣реАрдВред

рдЧреЗрдЯрд╕реНрдЯреЗрдЯ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрдИрдбреАред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХрджрдо:
1 рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд),
4 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓ рд░рд╣реА рд╣реИ (рдЖрд░рдВрднрд┐рдХ),
24 рд▓рдХреНрд╖реНрдп рдЙрдк рдкреВрд░рд╛
28 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд░реА рдХреА
64 рдирд╣реАрдВ рдорд┐рд▓рд╛ (рд╣реЛрд╕реНрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛), рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрддред

рдЧреИрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - getstate рджреЗрдЦреЗрдВ ()ред
рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (28 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 4)ред рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдкрд╛рджреНрдп рдЖрджреЗрд╢
рдХрдорд╛рдВрдб рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛ред

рд╢реЗрдпрд░ varname, рдореВрд▓реНрдп
varname рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рд╣реИ, рд╡реИрд▓реНрдпреВ рдХреЛрдИ рднреА рд╡реИрд▓реНрдпреВ рд╣реИред
рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╡реИрд╢реНрд╡рд┐рдХ рдЬрдЧрд╣ рдореЗрдВ varname рдирд╛рдордХ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рджреГрд╢реНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд░ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

newvar varname
varname рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдирдпрд╛ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореБрдХреНрдд рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдИрдбреА рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рд╕рдмрдирд╛рдоред рд▓рдХреНрд╖реНрдп рдЙрдк рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрддрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдпрд╛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдпреБрдХреНрдд (рд▓рдХреНрд╖реНрдп, рд░рд╛рдЬреНрдп, рд╕рдордп рд╕рдорд╛рдкреНрдд)
рд▓рдХреНрд╖реНрдп - рдореБрдлреНрдд рджреЗрдЦреЗрдВ (), рд░рд╛рдЬреНрдп - рджреЗрдЦреЗрдВ getstate (), рдЯрд╛рдЗрдордЖрдЙрдЯ - рд╕рдВрдЦреНрдпрд╛, рд╕реЗрдХрдВрдб рдореЗрдВ, рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╕рд╛рдеред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП, рд░рд╛рдЬреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреАрдХреНрд╖рд╛ рддрдм рддрдХ рдЪрд▓рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рд░ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ред рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп-рд╕реАрдорд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИ, рдЯрд╛рдЗрдордЖрдЙрдЯ = 0 рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрд╕реАрдорд┐рдд рдкреНрд░рддреАрдХреНрд╖рд╛ред рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╕рддреНрдп - рдкреНрд░рддреАрдХреНрд╖рд╛ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рдЭреВрдареА - рдЯрд╛рдЗрдордЖрдЙрдЯред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - 4, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ - 64;

рдмреАрдЪ рдореЗрдВ рдЯрд╛рд░рдЧреЗрдЯ, рдЯрд╛рдЗрдордЖрдЙрдЯ
рд▓рдХреНрд╖реНрдп - рдореБрдХреНрдд рджреЗрдЦреЗрдВ (), рдЯрд╛рдЗрдордЖрдЙрдЯ - рдорд╛рди wscript.time, рд╕реЗрдХрдВрдб рдореЗрдВред
рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, class_terminate рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдЦреЛрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреЙрдЬрд╝ рдХреЗ рдмрд╛рдж рдкреВрд░рд╛ рд╣реЛрдЧрд╛ред Class_terminate рдореЗрдердбреНрд╕ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рд░реАрдкреЗрдпрд░ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдкреБрд╢ рдирд╛рдо, рдорд╛рди
рдирд╛рдо - рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо, рдореВрд▓реНрдп - рдХреЛрдИ рднреА рдореВрд▓реНрдпред
рдирд╛рдо рдХреЗ GlobalContainer рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдореВрд▓реНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рдбрд╛рд▓рддрд╛ рд╣реИред

рдкреЙрдк (рдирд╛рдо)
рдирд╛рдо - рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдоред
GlobalContainer рд╕реЗ рдирд╛рдо рд╡рд╛рд▓реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

Mproc.vbs рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг:


 option explicit dim mproc set mproc = new multiprocess mproc.launch "base", "run", "" ' main programm section class base public sub run() host.startproc "msg", "run", "first" host.startproc "msg", "run", "second" host.startproc "msg", "run", "third" msgbox "base, id = " & host.id, 64 host.free host.id end sub end class class msg public sub run() msgbox host.aliasname & ", id = " & host.id, 64 host.free host.id end sub end class ' do not modify service class section class multiprocess public primary, ancestor, parent, process, err public names, execs, hosts public id, aid, isprimary public classname, methodname, aliasname public found, lost, active public state, permit, release private container, signature, wshshell public sub launch(startclassname, startmethodname, startaliasname) permit = false release = false executeglobal "dim scene, host, ancestor, process" if not isempty(host) then exit sub set host = me executeglobal "set host.err = err" executeglobal "function getroot: set getroot = me: end function" set parent = getroot isprimary = not wscript.arguments.named.exists("task") if isprimary then dim sample state = 24 randomize signature = "" do signature = signature & hex(rnd * 16) loop while len(signature) < 16 aid = empty id = 0 found = 0 lost = 0 set wshshell = createobject("WScript.Shell") set primary = host set ancestor = nothing set process = nothing set scene = parent set parent.ancestor = nothing set parent.process = nothing set hosts = createobject("Scripting.Dictionary") set execs = createobject("Scripting.Dictionary") set names = createobject("Scripting.Dictionary") classname = empty methodname = empty aliasname = empty set hosts(0) = host set container = getobject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}") container.putproperty signature, parent startproc startclassname, startmethodname, startaliasname on error resume next do for each sample in execs.keys if release or active = 0 then exit do if not (execs(sample) is nothing) then if execs(sample).status > 0 then abolish sample end if end if wscript.sleep 1 next loop release = true state = 28 scenequit else dim job job = split(wscript.arguments.named("task"), ";") signature = cstr(job(0)) do for each container in createobject("Shell.Application").windows if isobject(container.getproperty(signature)) then exit do end if next wscript.sleep 1 loop aid = clng(job(1)) id = clng(job(2)) found = null lost = null set scene = container.getproperty(signature) set primary = scene.host set hosts = primary.hosts set ancestor = hosts(aid) if isresponsive(aid) then set parent.ancestor = ancestor.parent.process else set parent.ancestor = nothing end if classname = cstr(job(3)) methodname = cstr(job(4)) aliasname = cstr(job(5)) state = 4 primary.implicate id, aliasname, host executeglobal "set process = new " & classname executeglobal "set host.process = process" executeglobal "set scene." & aliasname & " = process" if isresponsive(aid) then executeglobal "set host.ancestor.parent." & aliasname & " = process" end if state = 8 primary.staff host ancestorevent "oninitialized" state = 12 if methodname <> "" then do until permit wscript.sleep 10 loop state = 16 executeglobal "process." & methodname end if state = 20 ancestorevent "oncompleted" state = 24 do until release wscript.sleep 10 loop state = 28 end if end sub public default function startproc(classname, methodname, aliasname) set startproc = start(createproc(classname, methodname, aliasname)) end function public function createproc(classname, methodname, aliasname) if aliasname = "" then aliasname = classname newvar aliasname scene.host.newvar aliasname createproc = primary.spawn(id, classname, methodname, aliasname) end function public function spawn(issuer, classname, methodname, aliasname) if not release then found = found + 1 spawn = found active = found - lost names(spawn) = aliasname set hosts(spawn) = nothing if not hosts.exists(aliasname) then hosts.add aliasname, createobject("Scripting.Dictionary") end if set hosts(aliasname)(spawn) = nothing execs.add spawn, wshshell.exec("""" & wscript.fullname & """ """ & wscript.scriptfullname & """ ""/task:" & join(array(signature, issuer, spawn, classname, methodname, aliasname), ";") & """") end if end function public function start(target) select case outline(target) case "Nothing", "multiprocess" do while getstate(target) < 12 wscript.sleep 10 loop if isresponsive(target) then set start = hosts(target).process hosts(target).permit = true else set start = nothing end if case "Dictionary" dim elt set start = hosts(target) for each elt in start.keys do while getstate(elt) < 12 wscript.sleep 10 loop next for each elt in start.keys if isresponsive(elt) then hosts(elt).permit = true end if next case else set start = nothing end select end function public sub implicate(id, aliasname, host) set hosts(aliasname)(id) = host set hosts(id) = host end sub public sub staff(host) set hosts(host.process) = host end sub public sub abolish(id) if hosts.exists(names(id)) then hosts(names(id))(id) = empty end if names(id) = empty if isresponsive(id) then hosts(hosts(id).process) = empty end if hosts(id) = empty set execs(id) = nothing lost = lost + 1 active = found - lost end sub private sub ancestorevent(eventname) if aid > 0 then on error resume next executeglobal "ancestor." & aliasname & "_" & eventname & " host.hosts(" & id & ")" if err.number = 424 or err.number = 438 then err.clear end if end sub public sub assignhandler(handlername, byval varsqty) dim vars vars = "" if varsqty > 0 then do vars = vars & "param" & varsqty varsqty = varsqty - 1 if varsqty = 0 then exit do vars = vars & ", " loop end if executeglobal "sub " & handlername & "(" & vars & "): process." & handlername & " " & vars & ": end sub" end sub public sub newvar(varname) executecommand "dim " & varname end sub public sub executecommand(command) executeglobal command end sub public function getstate(target) select case outline(target) case "multiprocess" on error resume next getstate = hosts(target).state if err.number <> 0 then err.clear getstate = 64 end if case "Nothing" getstate = 1 case "Dictionary" getstate = null case empty getstate = 0 case else getstate = 64 end select end function private function outline(target) on error resume next if hosts.exists(target) then outline = typename(hosts(target)) if err.number <> 0 then err.clear outline = "Object" end if else outline = empty end if end function public function isresponsive(target) isresponsive = cbool(getstate(target) and 28) end function public function getid(target) on error resume next if isobject(target) then if isresponsive(target) then getid = hosts(target).id if err.number = 0 then exit function err.clear end if elseif primary.execs.exists(target) then getid = target exit function end if getid = null end function public function gethost(target) on error resume next if hosts.exists(target) then set gethost = hosts(target) if err.number = 0 then exit function err.clear end if set gethost = nothing end function public sub free(target) select case outline(target) case "multiprocess" on error resume next gethost(target).release = true err.clear case "Dictionary" dim elt for each elt in gethost(target) free(elt) next end select end sub public function joint(target, state, timeout) dim reftime reftime = timer select case outline(target) case "multiprocess", "Nothing" do while getstate(target) < state if timeisout(timeout, reftime) then joint = false exit function end if wscript.sleep 10 loop case "Dictionary" dim elt for each elt in gethost(target) do while getstate(elt) < state if timeisout(timeout, reftime) then joint = false exit function end if wscript.sleep 10 loop next end select joint = true end function private function timeisout(timeout, reftime) if timeout > 0 then dim delta delta = timer - reftime if delta < 0 then delta = delta + 86400 if delta > timeout then timeisout = true end if else timeisout = false end if end function public sub interrupt(target, timeout) select case outline(target) case "multiprocess" on error resume next with gethost(target).parent .wscript.timeout = timeout .wscript.quit end with err.clear case "Dictionary" dim elt for each elt in gethost(target) interrupt elt, timeout next end select end sub public sub kickout(target) if primary.execs.exists(target) then if getstate(target) < 64 then on error resume next primary.execs(target).terminate err.clear end if else select case outline(target) case "multiprocess" kickout getid(target) case "Dictionary" dim elt for each elt in gethost(target) kickout(elt) next end select end if end sub public sub terminate(target) interrupt target, 1 if not joint(target, 64, 2) then kickout target end sub public sub push(name, value) container.putproperty name, value end sub public function pop(name) on error resume next if isobject(container.getproperty(name)) then set pop = container.getproperty(name) else pop = container.getproperty(name) end if end function private sub scenequit if isprimary then dim col, i, status col = execs.keys for i = ubound(col) to 0 step -1 interrupt col(i), 1 next wscript.sleep 2000 on error resume next for i = ubound(col) to 0 step -1 status = execs(col(i)).status if err.number = 0 and status = 0 then execs(col(i)).terminate err.clear next container.quit end if end sub private sub class_terminate() if state < 28 and isprimary then scenequit end sub end class 


рд╡рд┐рд╡рд░рдг:


рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЗ:

рд▓реЙрдиреНрдЪ рдХреНрд▓рд╛рд╕рдирд╛рдо, рдореЗрдердбрдирд╛рдо, рдЕрд▓рд┐рдпрд╛рд╕рдиреЗрдо
рдпрд╣ рд╕реЗрд╡рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣рдореЗрд╢рд╛ рдЗрд╕рдХреА рдХреЙрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
classname, methodname, aliasname - рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ред рдЯрд╛рд░рдЧреЗрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рдФрд░ рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрд▓рд╛рд╕ рдХреНрд▓рд╛рд╕рдирд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрд▓рд┐рдпрд╛рд╕рдиреЗрдо (рдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо рдЕрдЧрд░ рдЕрд▓рд┐рдпрд╛рд╕реИрдо рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ) рдирд╛рдо рд╕реЗ рдПрдХ рдЪрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рддрд░реНрдХ рдореБрдЦреНрдп рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ:

startproc (classname, methodname, aliasname)
classname, methodname, aliasname - рд▓реЙрдиреНрдЪ рджреЗрдЦреЗрдВ ()ред
рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП 12 рд░рд╛рдЬреНрдп рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рдЧреЗрдЯрд╕реНрдЯреЗрдЯ () рджреЗрдЦреЗрдВ), рд▓рдХреНрд╖реНрдп рд╡рд┐рдзрд┐ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрд░рдВрднрд┐рдХ рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред

createproc ( рдХреНрд▓рд╛рд╕рдирд╛рдо , рдореЗрдердбрдирд╛рдо, рдЕрд▓рд┐рдпрд╛рд╕рдиреЗрдо)
classname, methodname, aliasname - рд▓реЙрдиреНрдЪ рджреЗрдЦреЗрдВ ()ред
рдмрд┐рдирд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП, рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдкрдиреА рдЖрдИрдбреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рд▓реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП startproc () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗред

рд╢реБрд░реВ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдИрдбреА рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдирд╛рдо рдирд╛рдоред
рд░рд╛рдЬреНрдп 12 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдПрдЯрдкреНрд░реЛрдХ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓рдХреНрд╖реНрдп рдкрджреНрдзрддрд┐ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрд░рдВрдн рдХрд┐рдП рдЧрдП рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдХреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдк-рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдирд╛рдо рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред

рдЧреЗрдЯрд╣реЛрд╕реНрдЯ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдИрдбреА рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдирд╛рдо рдирд╛рдо рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯред
рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдореЗрдЬрдмрд╛рди рдЙрджрд╛рд╣рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ, рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЙрдк-рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрд▓рд┐рдпрд╛рдирд╛рдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рднреА рд╣реЛрд╕реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдИрдбреА рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ - рдХреБрдЫ рднреА рдирд╣реАрдВред

рд▓рдХреНрд╖реНрдп (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - рд╕рдВрдЦреНрдпрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрдИрдбреА, рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдиреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрдИрдбреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдореМрдЬреВрджрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдПред

рдЧреЗрдЯрд╕реНрдЯреЗрдЯ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - getid рджреЗрдЦреЗрдВ ()ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХрджрдо:
0 рдирд╣реАрдВ рдорд┐рд▓рд╛ (рдореЗрдЬрдмрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛),
1 рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд),
4 рдореЗрдЬрдмрд╛рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ
8 рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдЖрд░рдВрднреАрдХреГрдд (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд░рдВрднреАрдХреГрдд),
12 рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдЖрд░рдВрднреАрдХреГрдд, рдШрдЯрдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд░рдВрднреАрдХреГрдд рд╕рдВрднрд╛рд▓рд╛),
16 рд▓рдХреНрд╖реНрдп рд╡рд┐рдзрд┐ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн),
20 рд▓рдХреНрд╖реНрдп рд╡рд┐рдзрд┐ рдкреВрд░реА (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА),
24 рдЯрд╛рд░рдЧреЗрдЯ рдореЗрдердб рдкреВрд░рд╛, рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕реНрдб (рдкреНрд░реЛрд╕реЗрд╕ рд╣реИрдВрдбреЗрдб),
28 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд░реА рдХреА
64 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА (рд╕рдорд╛рдкреНрдд)ред

рдЧреИрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ (рд▓рдХреНрд╖реНрдп)
рд▓рдХреНрд╖реНрдп - getid рджреЗрдЦреЗрдВ ()ред
рд╣реЛрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (28 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 4)ред рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╣реИрдВрдбрд╣реЗрд▓реНрдбрд░ рд╣реИрдВрдбрд▓рдмрд░реНрди, рд╡рд╛рд░реНрд╕рдХрдЯреА
handlername - рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдШрдЯрдирд╛ рдХрд╛ рдирд╛рдо, varsqty - рд╕рдВрдЦреНрдпрд╛, рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд╛рди рдореЗрдВ рдЙрдк рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдИрд╡реЗрдВрдЯ рдирд╛рдо рд╣реИрдВрдбрд▓рдмрд░реНрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдирд╛рдП рдЧрдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдорд╛рди рдирд╛рдо рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣реИрдВрдбрд▓рд░ рдХреЙрд▓ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред рд╣рд╕реНрдд рд░реЗрдЦрд╛ ()ред

рдирд┐рд╖реНрдкрд╛рджреНрдп рдЖрджреЗрд╢
рдХрдорд╛рдВрдб рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛ред

newvar varname
varname рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдирдпрд╛ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореБрдХреНрдд рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп - gethost рджреЗрдЦреЗрдВ ()ред
рд▓рдХреНрд╖реНрдп рдкрджреНрдзрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрддрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдпрд╛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдпреБрдХреНрдд (рд▓рдХреНрд╖реНрдп, рд░рд╛рдЬреНрдп, рд╕рдордп рд╕рдорд╛рдкреНрдд)
рд▓рдХреНрд╖реНрдп - gethost рджреЗрдЦреЗрдВ (), рд╕реНрдерд┐рддрд┐ - getstate (), рдЯрд╛рдЗрдордЖрдЙрдЯ - рд╕рдВрдЦреНрдпрд╛, рд╕реЗрдХрдВрдб рдореЗрдВ, рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рд╕рд╛рде рджреЗрдЦреЗрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП, рд░рд╛рдЬреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреАрдХреНрд╖рд╛ рддрдм рддрдХ рдЪрд▓рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рд░ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ред рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп-рд╕реАрдорд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИ, рдЯрд╛рдЗрдордЖрдЙрдЯ = 0 рдХрд╛ рдЕрд░реНрде рд╣реИ рдЕрд╕реАрдорд┐рдд рдкреНрд░рддреАрдХреНрд╖рд╛ред рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╕рддреНрдп - рдкреНрд░рддреАрдХреНрд╖рд╛ рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рдЭреВрдареА - рдЯрд╛рдЗрдордЖрдЙрдЯред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - 8 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ - 64;

рдмреАрдЪ рдореЗрдВ рдЯрд╛рд░рдЧреЗрдЯ, рдЯрд╛рдЗрдордЖрдЙрдЯ
рд▓рдХреНрд╖реНрдп - gethost рджреЗрдЦреЗрдВ (), рдЯрд╛рдЗрдордЖрдЙрдЯ - wscript.time рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп, рд╕реЗрдХрдВрдб рдореЗрдВред
рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, class_terminate рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдЦреЛрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреЙрдЬрд╝ рдХреЗ рдмрд╛рдж рдкреВрд░рд╛ рд╣реЛрдЧрд╛ред Class_terminate рдореЗрдердбреНрд╕ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рд░реАрдкреЗрдпрд░ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдХрд┐рдХрдЖрдЙрдЯ рд▓рдХреНрд╖реНрдп
рд▓рдХреНрд╖реНрдп - gethost рджреЗрдЦреЗрдВ ()ред
Wshexec.terminate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OS рд╕реНрддрд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП 2 рд╕реЗрдХрдВрдб рддрдХ рд▓рдВрдмреА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрднрд╡ рд╣реИред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдпрд╛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
рд▓рдХреНрд╖реНрдп - gethost рджреЗрдЦреЗрдВ ()ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХрд┐рдХрдЖрдЙрдЯ рдХрд░реЗрдВред

рдкреБрд╢ рдирд╛рдо, рдорд╛рди
рдирд╛рдо - рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо, рдореВрд▓реНрдп - рдХреЛрдИ рднреА рдореВрд▓реНрдпред
рдирд╛рдо рдХреЗ GlobalContainer рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдореВрд▓реНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рдбрд╛рд▓рддрд╛ рд╣реИред

рдкреЙрдк (рдирд╛рдо)
рдирд╛рдо - рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдоред
GlobalContainer рд╕реЗ рдирд╛рдо рд╡рд╛рд▓реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпрд╛рдБ, рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдХреЗ рдЖрд░рдВрдн рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЪрд╛рд▓реВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рдХреНрд╖реНрдп рд╡рд┐рдзрд┐ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:

<aliasname> _ oninitialized (рд╕реНрд░реЛрдд)
source - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╣реЛрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЙрдкрдирд╛рдо рдирд╛рдо рд╡рд┐рдзрд┐ рдирд╛рдо рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рд░рдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд░рд╛рдЬреНрдп = 8)ред

<aliasname> _ oncompleted (source)
source - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╣реЛрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЙрдкрдирд╛рдо рдирд╛рдо рд╡рд┐рдзрд┐ рдирд╛рдо рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд░рдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд░рд╛рдЬреНрдп = 20) рдХреА рд▓рдХреНрд╖реНрдп рдкрджреНрдзрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:


Mproclite рдФрд░ mproc рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдореВрд░реНрдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд▓реВрдк рдореЗрдВ рдЕрдкрдирд╛ рдЪрд░рд┐рддреНрд░ рдмрдлрд░ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рднрд░рддрд╛ рд╣реИ, рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдВрд╕реЛрд▓ рдХреЛ "рд╢рдмреНрдж" 3 рд╢рдмреНрдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред WScript рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ IE рд╡рд┐рдВрдбреЛ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рд╣реИред рд░рд╛рд╕реНрддреЗ рдХреЗ рд╕рд╛рде, рд╢реБрд░реВ рдФрд░ рдмрдВрдж рдУрдПрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (WMI рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ)ред
рдбрд┐рдмрдЧ рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдорд╛рдВрдЧ рд╣реИ - рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

Source: https://habr.com/ru/post/In189786/


All Articles