See More

package javaforce.utils; import javaforce.*; import javaforce.awt.*; /** SystemInfo * * @author peter.quiring */ public class SystemInfo extends javax.swing.JFrame { /** * Creates new form SystemInfo */ public SystemInfo() { initComponents(); username.setText(System.getenv("USERNAME")); computername.setText(System.getenv("COMPUTERNAME")); osversion.setText(System.getProperty("os.name") + " (" + System.getProperty("os.version") + ") " + System.getProperty("os.arch")); system_name.setText(wmic("csproduct", "name")); system_serial.setText(wmic("csproduct", "identifyingnumber")); okay.setSelected(true); JFAWT.centerWindow(this); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { okay = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); username = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); computername = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); osversion = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); system_name = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); system_serial = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("System Info"); okay.setText("OK"); okay.setFocusCycleRoot(true); okay.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okayActionPerformed(evt); } }); jLabel1.setText("User name"); username.setEditable(false); jLabel2.setText("Computer name"); computername.setEditable(false); jLabel3.setText("Windows version"); osversion.setEditable(false); jLabel4.setText("System Name"); system_name.setEditable(false); jLabel5.setText("System Serial"); system_serial.setEditable(false); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(okay)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(username)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(computername)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(osversion, javax.swing.GroupLayout.DEFAULT_SIZE, 238, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(system_name)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(system_serial))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(computername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(osversion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(system_name, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(system_serial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(okay) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void okayActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okayActionPerformed System.exit(0); }//GEN-LAST:event_okayActionPerformed /** * @param args the command line arguments */ public static void main(String[] args) { /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new SystemInfo().setVisible(true); } }); } private static String wmic(String type, String subtype) { try { //wmic csproduct get vendor,name,identifyingnumber String[] cmd = new String[] {"wmic", type, "get", subtype}; ShellProcess sp = new ShellProcess(); String output = sp.run(cmd, true); String[] lns = output.split("\r\n"); if (lns.length < 2) return "null"; return lns[1]; } catch (Exception e) { JFLog.log(e); } return null; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField computername; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JButton okay; private javax.swing.JTextField osversion; private javax.swing.JTextField system_name; private javax.swing.JTextField system_serial; private javax.swing.JTextField username; // End of variables declaration//GEN-END:variables }