Solução para pegar o Serial do HD e o Serial da CPU  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
rodrigoran
What is classpath?

Membro desde: 02/02/2008 13:13:37
Mensagens: 7
Offline

Boa noite pessoal!

Eu fiz testes com os dois modos de pegar o serial do HD aqui citados, e ambos me retornam um número negativo, não é isso né? O que pode estar errado?

Muito obrigado desde já!

Paulo Wassolowski
Smalltalk

Membro desde: 02/07/2009 10:23:27
Mensagens: 1
Offline

Pessoal , eu to precisando colcocar este aplicativo pra rodar no browser........estou fazendo um sistema para uso via internet e gostaria de autenticar o usuario , checando a serial do HD. Mas vou lhes dizer, ta dificil de achar a ferramenta certa......

Será que este daria certo? ou vcs tem alguma outra sugestão?


desde ja agradeço a colaboração!

sds

Paulo Wassolowski
beto.wassolowski
Smalltalk
[Avatar]

Membro desde: 07/07/2009 18:01:06
Mensagens: 1
Offline

Caro heiligerstein,

Esta solução realmente funciona. Como aplicativo. Estou tentando fazer um applet seguindo a mesma ideia. consegui fazela imprimir dentro da pagina html os resultados porem a resposta é NO_DISK_ID e NO_CPU_ID. anterior mente vinha tentando uma solução pra pegar o serial que era em javascript e usava vbs tb mas ocorria o seguinte erro "servidor nao pode criar o objeto" esse erro era justamente na parte que usa "scripting.FSO" e agora com a sua solução consigo fazer imprimir mas o resultado no é prenchido acredito que o problema seja o mesmo com o "FyleSystemOobject". Isso tudo porque estou tentando fazer com queno site, ao usuario acessar o site e fazer o login seja feito um controle por identificação da maquina. Se puder me dar alguma ideia ou mesmo me ajudar a terminar o serviço agradeço, ok.

Vou deixar aqui o arquivo que gerou o applet

############################################
// Java Document
import java.applet.Applet;
import java.awt.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class AppletValida extends Applet {
public void init() {}
public static String getHDSerial(String drive) {
String result = "oi";
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(\"c\")\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() < 5 || result == null) {
result = "NO_DISK_ID";

}

return result.trim();
}
//cpu
public static String getCPUSerial() {
String result = "resultado";
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();
}

//impressao
public void paint(Graphics g) {
String teste = "testeipm string";
g.drawString("Este é o Serial do seu HDD " + getHDSerial("c") + " :::fimmmmmm", 5, 25);
g.drawString("Meu primeiro Aplicativo em Java::: " + getCPUSerial() + " :::fimmmmmm", 5, 45);
}
}

##################################################

e este é a chamada que vai no html

#############################################
<budy>
Meu Java Applet Informa:
<applet code="AppletValida.class" width="400" height="100"></applet>
</budy>
############################

Se estiver falando bobagem, desculpe-me, pois sou iniciante no assunto...
[MSN]
colosos=colossus
JavaChild
[Avatar]

Membro desde: 22/06/2009 17:08:26
Mensagens: 130
Localização: Belém
Offline

rodrigoran wrote:Boa noite pessoal!

Eu fiz testes com os dois modos de pegar o serial do HD aqui citados, e ambos me retornam um número negativo, não é isso né? O que pode estar errado?

Muito obrigado desde já!



TBM quero saber se é isso mesmo
toninhocell
Debugger
[Avatar]

Membro desde: 21/01/2008 14:55:24
Mensagens: 67
Localização: Uberlândia MG
Offline

Testei e funcinou perfeitamente, cheguei a comparar o restultado com um executável que fiz em Delphi para isso há algum tempo e o valor número é o mesmo, a diferença é que no que fiz em Delphi ele retorna em Exadecimal, neste ele retorna em Decimal.

Muito obrigapo por compartilhar, me ajudou muito!


Abraços!

"Hoje sou mais sábio do que ontem"
[Email] [Yahoo!] [MSN]
sabrinah
Entusiasta Java

Membro desde: 30/08/2009 21:53:51
Mensagens: 15
Offline

Também testei e tive como retorno um número negativo, alguém sabe explicar se está correto?
djpitucco
Smalltalk

Membro desde: 08/05/2012 12:04:42
Mensagens: 1
Offline

Tb tive retorno de número negativo, oque fiz foi converter para Hexa, me trouxe o valor certinho do volume do hd


DiskUtils utilConnection = new DiskUtils("C");
int valor = utilConnection.getSerialNumber();
String serial = Integer.toHexString(valor);
erick_vegeta
Smalltalk

Membro desde: 13/05/2012 07:28:38
Mensagens: 1
Offline

Para aqueles que como eu pegaram um retorno errado no serial do HD


isto é para windows, gostaria de ver isto multiplataforma....
Who can do it?????

This message was edited 1 time. Last update was at 13/05/2012 07:39:19

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team