func init // adds using namespace sys.add_use('System.Diagnostics') // initialize instance sys.add_object(this.codename, 'Process') // initialize properties sys.set_typed_field(20, 'MaxWorkingSet') sys.set_typed_field(20, 'MinWorkingSet') sys.set_typed_field(104, 'PriorityBoostEnabled') sys.set_undef_field_const('PriorityClass', this.props('PriorityClass'), 'System.Diagnostics.ProcessPriorityClass') sys.set_typed_field(20, 'ProcessorAffinity') sys.set_typed_field(20, 'StartInfo') // makes implementation methods for properties sys._prop_init('BasePriority', 1, 0, 1) sys._prop_init('EnableRaisingEvents', 1, 1, 104) sys._prop_init('ExitCode', 1, 0, 1) sys._prop_init('ExitTime', 1, 0, 0) sys._prop_init('Handle', 1, 0, 0) sys._prop_init('HandleCount', 1, 0, 1) sys._prop_init('HasExited', 1, 0, 104) sys._prop_init('Id', 1, 0, 1) sys._prop_init('MachineName', 1, 0, 2) sys._prop_init('MainModule', 1, 0, 0) sys._prop_init('MainWindowHandle', 1, 0, 0) sys._prop_init('MainWindowTitle', 1, 0, 2) sys._prop_init('MaxWorkingSet', 1, 1, 0) sys._prop_init('MinWorkingSet', 1, 1, 0) sys._prop_init('Modules', 1, 0, 0) sys._prop_init('NonpagedSystemMemorySize', 1, 0, 1) sys._prop_init('NonpagedSystemMemorySize64', 1, 0, 105) sys._prop_init('PagedMemorySize', 1, 0, 1) sys._prop_init('PagedMemorySize64', 1, 0, 105) sys._prop_init('PagedSystemMemorySize', 1, 0, 1) sys._prop_init('PagedSystemMemorySize64', 1, 0, 105) sys._prop_init('PeakPagedMemorySize', 1, 0, 1) sys._prop_init('PeakPagedMemorySize64', 1, 0, 105) sys._prop_init('PeakVirtualMemorySize', 1, 0, 1) sys._prop_init('PeakVirtualMemorySize64', 1, 0, 105) sys._prop_init('PeakWorkingSet', 1, 0, 1) sys._prop_init('PeakWorkingSet64', 1, 0, 105) sys._prop_init('PriorityBoostEnabled', 1, 1, 104) sys._prop_init('PriorityClass', 1, 1, 0) sys._prop_init('PrivateMemorySize', 1, 0, 1) sys._prop_init('PrivateMemorySize64', 1, 0, 105) sys._prop_init('PrivilegedProcessorTime', 1, 0, 0) sys._prop_init('ProcessName', 1, 0, 2) sys._prop_init('ProcessorAffinity', 1, 1, 0) sys._prop_init('Responding', 1, 0, 104) sys._prop_init('SessionId', 1, 0, 1) sys._prop_init('StandardError', 1, 0, 0) sys._prop_init('StandardInput', 1, 0, 0) sys._prop_init('StandardOutput', 1, 0, 0) sys._prop_init('StartInfo', 0, 1, 0) sys._prop_init('StartTime', 1, 0, 0) sys._prop_init('SynchronizingObject', 1, 1, 0) sys._prop_init('Threads', 1, 0, 0) sys._prop_init('TotalProcessorTime', 1, 0, 0) sys._prop_init('UserProcessorTime', 1, 0, 0) sys._prop_init('VirtualMemorySize', 1, 0, 1) sys._prop_init('VirtualMemorySize64', 1, 0, 105) sys._prop_init('WorkingSet', 1, 0, 1) sys._prop_init('WorkingSet64', 1, 0, 105) // makes implementation of methods as properties sys._mtd_as_prop_init('CloseMainWindow()') sys._mtd_as_prop_init('GetCurrentProcess()') sys._mtd_as_prop_init('GetProcesses()') sys._mtd_as_prop_init('Start()') sys._mtd_as_prop_init('ToString()') sys._mtd_as_prop_init('WaitForInputIdle()') sys._mtd_as_prop_init('Process') // makes implementation of simple methods sys._method_init('BeginErrorReadLine') sys._method_init('BeginOutputReadLine') sys._method_init('CancelErrorRead') sys._method_init('CancelOutputRead') sys._method_init('Close') sys._method_init('EnterDebugMode') sys._method_init('Kill') sys._method_init('LeaveDebugMode') sys._method_init('Refresh') sys._method_init('WaitForExit') // initialize events sys.add_event_type('onErrorDataReceived', 'ErrorDataReceived', 'DataReceivedEvent', 'args') sys.add_event_type('onExited', 'Exited', 'Event', 'args') sys.add_event_type('onOutputDataReceived', 'OutputDataReceived', 'DataReceivedEvent', 'args') // initialize common events and properties include("Component-init") end func doGetProcessById(processId) if(linked("onGetProcessById")) event("onGetProcessById", 'Process.GetProcessById(' + d("processId") + ')') else blk.println('Process.GetProcessById(', d("processId"), ');') end end func doGetProcessById2(processId, computer) if(linked("onGetProcessById")) event("onGetProcessById", 'Process.GetProcessById(' + d("processId") + ', ' + d("computer") + ')') else blk.println('Process.GetProcessById(', d("processId"), ', ', d("computer"), ');') end end func doGetProcesses2(computer) if(linked("onGetProcesses")) event("onGetProcesses", 'Process.GetProcesses(' + d("computer") + ')') else blk.println('Process.GetProcesses(', d("computer"), ');') end end func doGetProcessesByName(processName) if(linked("onGetProcessesByName")) event("onGetProcessesByName", 'Process.GetProcessesByName(' + d("procName") + ')') else blk.println('Process.GetProcessesByName(', d("procName"), ');') end end func doGetProcessesByName2(processName, computer) if(linked("onGetProcessesByName")) event("onGetProcessesByName", 'Process.GetProcessesByName(' + d("procName") + ', ' + d("computer") + ')') else blk.println('Process.GetProcessesByName(', d("procName"), ', ', d("computer"), ');') end end func doStart2(startInfo) if(linked("onStart")) event("onStart", 'Process.Start(' + d("startInfo") + ')') else blk.println('Process.Start(', d("startInfo"), ');') end end func doStart3(fileName) if(linked("onStart")) event("onStart", 'Process.Start(' + d("fileName") + ')') else blk.println('Process.Start(', d("fileName"), ');') end end func doStart4(fileName, arguments) if(linked("onStart")) event("onStart", 'Process.Start(' + d("fileName") + ', ' + d("arguments") + ')') else blk.println('Process.Start(', d("fileName"), ', ', d("arguments"), ');') end end func doStart5(fileName, userName, password, domain) if(linked("onStart")) event("onStart", 'Process.Start(' + d("fileName") + ', ' + d("userName") + ', ' + d("password") + ', ' + d("domain") + ')') else blk.println('Process.Start(', d("fileName"), ', ', d("userName"), ', ', d("password"), ', ', d("domain"), ');') end end func doStart6(fileName, arguments, userName, password, domain) if(linked("onStart")) event("onStart", 'Process.Start(' + d("fileName") + ', ' + d("arguments") + ', ' + d("userName") + ', ' + d("password") + ', ' + d("domain") + ')') else blk.println('Process.Start(', d("fileName"), ', ', d("arguments"), ', ', d("userName"), ', ', d("password"), ', ', d("domain"), ');') end end func doWaitForExit2(milliseconds) if(linked("onWaitForExit")) event("onWaitForExit", this.codename + '.WaitForExit(' + d("milliseconds") + ')') else blk.println(this.codename, '.WaitForExit(', d("milliseconds"), ');') end end func doWaitForInputIdle2(milliseconds) if(linked("onWaitForInputIdle")) event("onWaitForInputIdle", this.codename + '.WaitForInputIdle(' + d("milliseconds") + ')') else blk.println(this.codename, '.WaitForInputIdle(', d("milliseconds"), ');') end end