webdevRefinery Forum: Java - Motherboard Serial Number - webdevRefinery Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Rate Topic: -----

User is offline Kira 

  • Group: Members
  • Posts: 11
  • Joined: 10-March 10
  • Expertise:Java,SQL,Flash

Posted 25 May 2012 - 08:07 PM (#1)

Java - Motherboard Serial Number


Code to get the motherboard serial number of a pc/laptop
Hey guys,

As you might know, I am new to the forum.
My issue is that I want to get the motherboard serial number from my laptop by calling a Java class.
I found this code on the net:
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiscUtils {
private MiscUtils() { }

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

String vbs =
"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n"
+ "Next \n";

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){
e.printStackTrace();
}
return result.trim();
}
	  public static void main(String[] args){
	    String cpuId = MiscUtils.getMotherboardSN();
	    javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
	         null, cpuId, "Motherboard serial number",
	         javax.swing.JOptionPane.DEFAULT_OPTION);
	  }
	}

However, when I run it on Eclipse, I get a notification "Not Applicable". Does anyone know why this notification appears and maybe give me a hint of how to fix it?

I also found this answer for this problem in another forum, but I am not sure if this is true: "If you're not getting a motherboard ID then most likely, the BIOS isn't set up to provide that information for that model of motherboard. It's not available."

Any help would be really appreciated guys.

Thanx!
0


User is offline Daniel15 

  • dan.cx
  • Group: Moderators
  • Posts: 3415
  • Joined: 17-April 10
  • LocationMelbourne, Australia
  • Expertise:HTML,CSS,PHP,Java,Javascript,Node.js,SQL

Posted 26 May 2012 - 06:21 AM (#2)

Haha, I remember doing something very similar in PHP. This approach only works on Windows, as it uses WMI (which is specific to Windows). Sometimes the BIOS doesn't provide the motherboard serial number, or it's not available via WMI (the code you posted above uses WMI via a VBScript script).

Also, you'll probably have to run the Java app as an administrator.
Daniel15! :D
Posted Image

Repeat after me: jQuery is not JavaScript. It is not the answer to every JavaScript-related question. When you have to write some JavaScript, do not instantly react with "Oh, I'll do that with jQuery!"

Spoiler
0


Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users


Enter your sign in name and password


Sign in options
  Or sign in with these services