Como aplicar uma class em java no SC

(pessanha) #1

Ola MAIS uma vez !!!..

Bem, pela minha falta de esperiência eu não estou conseguindo aplicar a seguinte class abaixo no SC5:

Alguem pode me ajudar?

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class Teste {

public static String getHDSerial(String drive) {   
    String result = "";   
    try {   
        //File file = File.createTempFile("tmp",".vbs");   
        File file = File.createTempFile("tmp", ".vbs");   
        file.deleteOnExit();   
        FileWriter fw = new java.io.FileWriter(file);   

        String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" + "Set colDrives = objFSO.Drives\n"   
                        + "Set objDrive = colDrives.item(\"" + drive + "\")\n" + "Wscript.Echo objDrive.SerialNumber";     
        fw.write(vbs);   
        fw.close();   
        Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());   
        BufferedReader input =   
            new BufferedReader(new InputStreamReader(p.getInputStream()));   
        String line;   
        while ((line = input.readLine()) != null) {   
            result += line;   
        }   
        input.close();   
    } catch (Exception e) {   

    }   
    if (result.trim().length() < 1  || result == null) {   
        result = "NO_DISK_ID";   

    }   

    return result.trim();   
}   

public static String getCPUSerial() {   
    String result = "";   
    try {   
        File file = File.createTempFile("tmp", ".vbs");   
        file.deleteOnExit();   
        FileWriter fw = new java.io.FileWriter(file);   

        String vbs =   
            "On Error Resume Next \r\n\r\n" +   
            "strComputer = \".\"  \r\n" +   
            "Set objWMIService = GetObject(\"winmgmts:\" _ \r\n" +   
            "    & \"{impersonationLevel=impersonate}!\\\\\" & strComputer & \"\\root\\cimv2\") \r\n" +   
            "Set colItems = objWMIService.ExecQuery(\"Select * from Win32_Processor\")  \r\n " +   
            "For Each objItem in colItems\r\n " +   
            "    Wscript.Echo objItem.ProcessorId  \r\n " +   
            "    exit for  ' do the first cpu only! \r\n" +   
            "Next                    ";   


        fw.write(vbs);   
        fw.close();   
        Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());   
        BufferedReader input =   
            new BufferedReader(new InputStreamReader(p.getInputStream()));   
        String line;   
        while ((line = input.readLine()) != null) {   
            result += line;   
        }   
        input.close();   
    } catch (Exception e) {   

    }   
    if (result.trim().length() < 1 || result == null) {   
        result = "NO_CPU_ID";   
    }   
    return result.trim();   
}   

public static void main(String[] args) {   
    System.out.println("Serial do HD: " + getHDSerial("c"));   
    System.out.println("Serial da CPU: " + getCPUSerial());   
}   

}

(Rodrigo Lins) #2

Bom Dia,

Para conseguir rodar Java no PHP será necessário habilitar o mesmo no PHP.

http://www.hlegius.pro.br/integracao-php-e-java-facil-porem-dificil/

Neste link existe uma breve descrição e tutorial de como fazer isto.

Espero ter ajudado.

Rodrigo Lins.