Consutar o hardware

Estou desenvolvendo um software que verifica os componetes existentes no computador ex. (marca do CDROM, Drive de desquete, tipo e velocidade do processador, HD, etc), alguem ai pode me ajudar pois não sei como me comunico com o sistema para que ele me retorne estas informações

Obrigado :razz:

Oi

Orlando, com Java, acho que este nivel de detalhe das informações vai ficar dificil de se conseguir… se tu fizer em C vai ser mais facil, aí dpeois é só usar JNI e ser feliz.

T+

Não conheço mas ja ouvi falar, o que é e com o utiliso?

vc faz uma função em C que lê o hardware e usa ela em Java

Oi

Opa, a função em C não usa Java, o Java que usa a função em C.

http://java.sun.com/j2se/1.3/docs/guide/jni/

T+

Uma dúvida! o java não tem nenhuma biblioteca que permita fazer chamadas as DLL’s do Windows??? Pois a API do Windows está toda dentro de DLL’s e na API do windows está cheia de funções que retornam informações de hardware, implementam hooks, etc… Logo se pudermos acessar uma DLL do windows atraves do java podemos fazer isso que o orlando_homer está querendo!

[quote=“jeveaux”]Oi

Opa, a função em C não usa Java, o Java que usa a função em C.

http://java.sun.com/j2se/1.3/docs/guide/jni/

T+[/quote]

Oi… Maxwell, é isso aí acima cara… Esta API, JNI, faz extamente isto…

T+

Então a gente pode experimentar com essa funcao da API do windows.

BOOL GetVolumeInformation(

LPCTSTR lpRootPathName,	// address of root directory of the file system 
LPTSTR lpVolumeNameBuffer,	// address of name of the volume 
DWORD nVolumeNameSize,	// length of lpVolumeNameBuffer 
LPDWORD lpVolumeSerialNumber,	// address of volume serial number 
LPDWORD lpMaximumComponentLength,	// address of system's maximum filename length
LPDWORD lpFileSystemFlags,	// address of file system flags 
LPTSTR lpFileSystemNameBuffer,	// address of name of file system 
DWORD nFileSystemNameSize 	// length of lpFileSystemNameBuffer 

);

A chamada para ela é algo assim:

char label[11];
tipo_numerico_de_32bits serial, dirlen, flags;

GetVolumeInformation(“C:”, label, 12, serial, dirlen, flags, null, 0);

Está funcao vai retornar o serial do hd em hexadecimal.

Bem isso foi uma traduçao do que eu fazia em Delphi para java. Esse tipo_numerio_de_32bits tem que ser uma doubleword só que em java não sei que tipo de variavel tem 32 bits. Vcs que sacam mais testem ai chamar esse funcao atraves do JNI.

Esta funcao se encontra na KERNEL32.DLL