<html><HTA:APPLICATION ID="windowselevate" icon="#"/> <script language="vbscript"> document.title = "elxr control panel" self.ResizeTo 200,600 Sub Window_Onload self.MoveTo (screen.availWidth - (document.body.clientWidth + 40)),10 End Sub Set objShell = CreateObject("WScript.Shell") Set objENV = objShell.Environment("Process") dim NODE_ENV NODE_ENV = objENV("NODE_ENV") </script> <script language="javascript"> //WINDOWSTATE="minimize" SHOWINTASKBAR="no" SYSMENU="no" CAPTION="no" // https://devblogs.microsoft.com/scripting/how-can-i-pass-command-line-variables-to-an-hta-when-it-starts/ // alert(windowselevate.commandLine) var args = windowselevate.commandLine.split('"').slice(3); // alert(args) var processedArgs = { _ : [] } var namedArgs = []; for(var item in args){ if(args[item].charAt(0) === '-'){ namedArgs.push(args[item]) var split = args[item].split('='); processedArgs[split[0].slice(2)] = split[1] || true; } else processedArgs._.push(args[item]); } // args = args.forEach(function(item){ }) // alert('processedArgs._ : ' + processedArgs._); // alert(processedArgs.runas); // PB : TODO -- Convert all the cli args back to string. var cargs = (processedArgs.debug ? '--inspect-brk=9228' : '') + ' elxr ' + processedArgs._.join(' ') + ' ' + namedArgs.join(' '); // alert(cargs) var shell = new ActiveXObject('shell.application'); shell.ShellExecute('node', cargs, '', 'runas', 1); var fso = new ActiveXObject('Scripting.FileSystemObject'); window.onload = function() { document.body.style.backgroundColor = 'black'; document.body.style.fontFamily = 'arial'; var log = document.createElement('div'); log.innerHTML='Please Wait'; function l(msg){ log.innerHTML+= msg; }; log.style.color = 'blue'; log.style.width = '95%'; log.id = 'log'; document.body.appendChild(log); l('<Br/>Current config : ') l('<Br/>NODE_ENV = ' + NODE_ENV) l('<Br/>cmd = ' + processedArgs._[0]) processedArgs._[1] === 'use' ? l('<Br/>using = ' + processedArgs._[2]) : null; l('<Br/><Br/>') var timer = function(){ l('.'); if(fso.FileExists("run.done")) close(); else window.setTimeout(timer, 1000); }; window.setTimeout(timer, 3000); }; </script> </html>