[Phpsysinfo-subversion] SF.net SVN: phpsysinfo:[691] branches/namiltd-ini/plugins
Brought to you by:
namiltd
From: <na...@us...> - 2012-09-08 16:34:27
|
Revision: 691 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=691&view=rev Author: namiltd Date: 2012-09-08 16:34:21 +0000 (Sat, 08 Sep 2012) Log Message: ----------- Windows WMI exceptions of plugins Modified Paths: -------------- branches/namiltd-ini/plugins/ps/class.ps.inc.php branches/namiltd-ini/plugins/psstatus/class.psstatus.inc.php Modified: branches/namiltd-ini/plugins/ps/class.ps.inc.php =================================================================== --- branches/namiltd-ini/plugins/ps/class.ps.inc.php 2012-09-08 14:32:10 UTC (rev 690) +++ branches/namiltd-ini/plugins/ps/class.ps.inc.php 2012-09-08 16:34:21 UTC (rev 691) @@ -52,31 +52,35 @@ case 'command': if (PHP_OS == 'WINNT') { $objLocator = new COM("WbemScripting.SWbemLocator"); - $wmi = $objLocator->ConnectServer(); - $os_wmi = $wmi->InstancesOf('Win32_OperatingSystem'); - foreach ($os_wmi as $os) { - $memtotal = $os->TotalVisibleMemorySize * 1024; - } - $process_wmi = $wmi->InstancesOf('Win32_Process'); - foreach ($process_wmi as $process) { - if (strlen(trim($process->CommandLine)) > 0) { - $ps = trim($process->CommandLine); - } else { - $ps = trim($process->Caption); + try { + $wmi = $objLocator->ConnectServer(); + $os_wmi = $wmi->InstancesOf('Win32_OperatingSystem'); + foreach ($os_wmi as $os) { + $memtotal = $os->TotalVisibleMemorySize * 1024; } - if (trim($process->ProcessId) != 0) { - $memusage = round(trim($process->WorkingSetSize) * 100 / $memtotal, 1); - //ParentProcessId - //Unique identifier of the process that creates a process. Process identifier numbers are reused, so they - //only identify a process for the lifetime of that process. It is possible that the process identified by - //ParentProcessId is terminated, so ParentProcessId may not refer to a running process. It is also - //possible that ParentProcessId incorrectly refers to a process that reuses a process identifier. You can - //use the CreationDate property to determine whether the specified parent was created after the process - //represented by this Win32_Process instance was created. - //=> subtrees of processes may be missing (WHAT TODO?!?) - $this->_filecontent[] = trim($process->ProcessId)." ".trim($process->ParentProcessId)." ".$memusage." ".$ps; + $process_wmi = $wmi->InstancesOf('Win32_Process'); + foreach ($process_wmi as $process) { + if (strlen(trim($process->CommandLine)) > 0) { + $ps = trim($process->CommandLine); + } else { + $ps = trim($process->Caption); + } + if (trim($process->ProcessId) != 0) { + $memusage = round(trim($process->WorkingSetSize) * 100 / $memtotal, 1); + //ParentProcessId + //Unique identifier of the process that creates a process. Process identifier numbers are reused, so they + //only identify a process for the lifetime of that process. It is possible that the process identified by + //ParentProcessId is terminated, so ParentProcessId may not refer to a running process. It is also + //possible that ParentProcessId incorrectly refers to a process that reuses a process identifier. You can + //use the CreationDate property to determine whether the specified parent was created after the process + //represented by this Win32_Process instance was created. + //=> subtrees of processes may be missing (WHAT TODO?!?) + $this->_filecontent[] = trim($process->ProcessId)." ".trim($process->ParentProcessId)." ".$memusage." ".$ps; + } } } + catch(Exception $e) { + } } else { CommonFunctions::executeProgram("ps", "axo pid,ppid,pmem,args", $buffer, PSI_DEBUG); } @@ -130,8 +134,10 @@ */ public function xml() { - $positions = array(0=>0); - $xml = $this->_addchild($this->_result['childs'], $this->xml, $positions); + if ($this->_result){ + $positions = array(0=>0); + $xml = $this->_addchild($this->_result['childs'], $this->xml, $positions); + } return $this->xml->getSimpleXmlElement(); } /** Modified: branches/namiltd-ini/plugins/psstatus/class.psstatus.inc.php =================================================================== --- branches/namiltd-ini/plugins/psstatus/class.psstatus.inc.php 2012-09-08 14:32:10 UTC (rev 690) +++ branches/namiltd-ini/plugins/psstatus/class.psstatus.inc.php 2012-09-08 16:34:21 UTC (rev 691) @@ -55,11 +55,15 @@ case 'command': if (PHP_OS == 'WINNT') { $objLocator = new COM("WbemScripting.SWbemLocator"); - $wmi = $objLocator->ConnectServer(); - $process_wmi = $wmi->InstancesOf('Win32_Process'); - foreach ($process_wmi as $process) { - $this->_filecontent[] = array(trim($process->Caption), trim($process->ProcessId)); + try { + $wmi = $objLocator->ConnectServer(); + $process_wmi = $wmi->InstancesOf('Win32_Process'); + foreach ($process_wmi as $process) { + $this->_filecontent[] = array(trim($process->Caption), trim($process->ProcessId)); + } } + catch(Exception $e) { + } } else { if ( defined('PSI_PLUGIN_PSSTATUS_PROCESSES') && is_string(PSI_PLUGIN_PSSTATUS_PROCESSES) ) { if (preg_match(ARRAY_EXP, PSI_PLUGIN_PSSTATUS_PROCESSES)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |