private long[] readCPU(final Process pc) throws Exception {
        try {
            long[] returnCPUInfo = new long[2];
            pc.getOutputStream().close();

            InputStreamReader inputReader = new InputStreamReader(pc.getInputStream());
            LineNumberReader lineNumberInput = new LineNumberReader(inputReader);
            String readInput = lineNumberInput.readLine();
            if (readInput == null || readInput.length() < faultLength) {
                return null;
            }

            int captionID = readInput.indexOf("Caption");
            int commandID = readInput.indexOf("CommandLine");
            int readOperationCountID = readInput.indexOf("ReadOperationCount");
            int userModeTimeID = readInput.indexOf("UserModeTime");
            int kernelModeTimeID = readInput.indexOf("KernelModeTime");
            int writeOperationCountID = readInput.indexOf("WriteOperationCount");

            long idelTime = 0, kernelTime = 0, userTime = 0;

            while ((readInput = lineNumberInput.readLine()) != null) {
                if (readInput.length() < writeOperationCountID) {
                    continue;
                }

                String caption = readInput.substring(captionID, commandID - 1).trim();
                String command = readInput.substring(commandID, kernelModeTimeID - 1).trim();

                if (command.indexOf("wmic.exe") >= 0) {
                    continue;
                }

                if (caption.equals("System Idle Process") || caption.equals("System")) {
                    idelTime += Long.valueOf(Bytes.substring(readInput, kernelModeTimeID, readOperationCountID - 1).trim()).longValue();
                    idelTime += Long.valueOf(Bytes.substring(readInput, userModeTimeID, writeOperationCountID - 1).trim()).longValue();
                    continue;
                }
                kernelTime += Long.valueOf(Bytes.substring(readInput, kernelModeTimeID, readOperationCountID - 1).trim()).longValue();
                userTime += Long.valueOf(Bytes.substring(readInput, userModeTimeID, writeOperationCountID - 1).trim()).longValue();
            }
            returnCPUInfo[0] = idelTime;
            returnCPUInfo[1] = kernelTime + userTime;
            return returnCPUInfo;
        } catch (Exception e) {
        } finally {
            try {
                pc.getInputStream().close();
            } catch (Exception e) {
            }
        }

        return null;
    }