Update bootstrap.js and relative files

This commit is contained in:
Namhyeon Go 2020-07-21 15:30:18 +09:00
parent 0585a1806f
commit 238420c637
2 changed files with 67 additions and 15 deletions

4
bootstrap.js vendored
View File

@ -6,6 +6,8 @@
var PS = require("lib/powershell");
var REG = require("lib/registry");
var SYS = require("lib/system");
var SHELL = require("lib/shell");
return {
main: function() {
@ -18,7 +20,7 @@ return {
//REG.importFromFile("app/assets/reg/Add_URI_Scheme.reg");
// register URI scheme
// todo
//REG.write(hKey, path, key, value, REG.STRING, computer);
console.log("done");
}

View File

@ -11,6 +11,43 @@ exports.VERSIONINFO = "System Module (system.js) version 0.1";
exports.global = global;
exports.require = global.require;
exports.createProcess = function(cmd) {
var SW_HIDE = 0;
var pid = 0;
var wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2")
var si = wmi.Get("Win32_ProcessStartup").SpawnInstance_();
si.ShowWindow = SW_HIDE;
si.CreateFlags = 16777216;
si.X = si.Y = si.XSize = si.ySize = 1;
//wmi.Get("Win32_Process").Create(cmd, null, si, pid);
var w32proc = wmi.Get("Win32_Process");
var method = w32proc.Methods_.Item("Create");
var inParams = method.InParameters.SpawnInstance_();
inParams.CommandLine = cmd;
inParams.CurrentDirectory = null;
inParams.ProcessStartupInformation = si;
var outParams = w32proc.ExecMethod_("Create", inParams);
return outParams.ProcessId;
};
exports.getFilePath = function(path) {
return WSH.ExpandEnvironmentStrings(path);
};
exports.get32BitFolder = function() {
var base = JPTUDBSTOW.file.getPath("%WINDIR%");
var syswow64 = base + "\\SysWOW64\\";
if (JPTUDBSTOW.FS.FolderExists(syswow64))
return syswow64;
return base + "\\System32\\";
}
exports.isElevated = function() {
try {
WSH.RegRead("HKEY_USERS\\s-1-5-19\\");
@ -97,18 +134,31 @@ exports.getNetworkInterfaces = function() {
return rows;
};
exports.getCurrentProcesses = function() {
var processes = [];
var response = SHELL.exec("tasklist.exe");
exports.getProcessList = function() {
var wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2");
var query = "Select * From Win32_Process";
var lines = response.split(/\r?\n/);
for(var i in lines) {
var line = lines[i];
var values = line.split(' ');
processes.push(values);
return wmi.ExecQuery(query);
};
exports.killProcess = function(pid) {
var processes = exports.getProcessList();
var items = new Enumerator(processes);
while (!items.atEnd()) {
var proc = items.item();
try {
if (proc.ProcessId == pid) {
proc.Terminate();
return true;
}
} catch (e) {}
items.moveNext();
}
return processes;
return false;
};
exports.createShortcut = function(shoutcutName, fileName) {