home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: HTML & Java / Chip-Special_1997-01_HTML-a-Java.bin / javasdk / sdk-java.exe / SDKJava.cab / Samples / AWT / RegKey / RegKeySample.java < prev   
Encoding:
Java Source  |  1996-10-10  |  7.8 KB  |  238 lines

  1. /*====================================================================================
  2.  *
  3.  *  Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
  4.  *
  5.  *  File: RegKeySample.java
  6.  *
  7.  *  Sample Application to demonstrate the use of the Registery API's
  8.  *
  9.  *
  10.  ************************************************************************************/
  11.  
  12. import java.awt.*;
  13. import java.applet.*;
  14. import java.util.Date;
  15. import com.ms.lang.*;
  16.  
  17. //==============================================================================
  18. // Main Class for RegKeySample application
  19. //
  20. //==============================================================================
  21. public class RegKeySample extends Frame
  22. {
  23.     RegKey rk;
  24.     TextArea Textout;
  25.  
  26.     ////////////////////////////////////////////////////////////////////////////    
  27.  
  28.     public static void main(String args[])
  29.     {
  30.         int width = 600;
  31.         int height = 300;
  32.  
  33.         Frame frm = new RegKeySample();        
  34.         frm.resize(width,height);
  35.         frm.show();        
  36.     }
  37.  
  38.     //--------------------------------------------------------------------------
  39.  
  40.     public RegKeySample()
  41.     {
  42.         
  43.         Textout = new TextArea(7, 50);
  44.         Textout.setEditable(false);
  45.         setLayout(new BorderLayout());
  46.         add("Center", Textout);
  47.         setTitle("Microsoft SDK-Java RegKeySample");    
  48.         MenuBar MBar = new MenuBar();        
  49.         Menu test_menu = new Menu("Test");
  50.         MBar.add(test_menu);
  51.         MenuItem start_menu = new MenuItem("Start RegKeySample");
  52.         test_menu.add(start_menu);
  53.         test_menu.addSeparator();
  54.         MenuItem exit_menu = new MenuItem("Exit");
  55.         test_menu.add(exit_menu);
  56.         Menu Help_menu = new Menu("Help");
  57.         MBar.add(Help_menu);        
  58.         MenuItem helpAbout = new MenuItem("About RegKeySample..");
  59.         Help_menu.add(helpAbout);
  60.  
  61.         setMenuBar(MBar);
  62.  
  63.         Textout.appendText("To start the test, Click on the Test menu and select \"Start RegKeySample\".\n\n");
  64.     }
  65.             
  66.  
  67.     //--------------------------------------------------------------------------
  68.     public String getAppletInfo()
  69.     {        
  70.         String str = "About Microsoft SDK-Java RegKeySample";
  71.         String label1 = "Microsoft SDK-Java RegKeySample.\n";
  72.         String label2 = "Copyright (c) 1996  Microsoft Corporation\n\n";
  73.         
  74.         setFont(new Font("TimesRoman",Font.BOLD,27));
  75.         Textout.appendText("**************************************************\n");
  76.         Textout.appendText(label1+label2);
  77.         Textout.appendText("**************************************************\n\n");
  78.         
  79.         return label1 + label2;
  80.                
  81.     }
  82.  
  83.     //--------------------------------------------------------------------------
  84.     public void RunRKTest()
  85.     {
  86.         Textout.appendText("********************************************************\n");
  87.         Textout.appendText("Starting Microsoft SDK-Java RegKeySapmple Application \n\n");
  88.  
  89.         Textout.appendText("Creating new key\n");
  90.         rk = new RegKey(null, "RegKeySample Test", RegKey.KEYOPEN_CREATE);
  91.         Textout.appendText("got it!, adding two string values\n");
  92.         rk.setValue("Param1", "Daliah");
  93.         rk.setValue("Param2", "Victoria");
  94.         Textout.appendText("adding two DWORD values\n");
  95.         rk.setValue("Param3", 42);
  96.         rk.setValue("Param4", 911);
  97.         Textout.appendText("Now querying all the values again\n");
  98.         Textout.appendText("---> Param1 = " + rk.getStringValue("Param1") + "\n");
  99.         Textout.appendText("---> Param2 = " + rk.getStringValue("Param2") + "\n");
  100.         Textout.appendText("---> Param3 = " + rk.getIntValue("Param3") + "\n");
  101.         Textout.appendText("---> Param4 = " + rk.getIntValue("Param4") + "\n\n");
  102.  
  103.         Textout.appendText("Let's call queryInfo() for some info on the open RegKey\n");
  104.         RegQueryInfo rqi = new RegQueryInfo();    //Create a RegQueryInfo object
  105.         rqi = rk.queryInfo();                    //queryInfo returns a class of type RegQueryInfo
  106.         
  107.         Textout.appendText("RegQueryInfo class member variables values:\n");
  108.         Textout.appendText("---------------------------------------------------\n");
  109.         Textout.appendText("TheClass = " + rqi.theClass + "\n");
  110.         Textout.appendText("subKeys = " + rqi.subKeys + "\n");
  111.         Textout.appendText("maxSubKeyLen = " + rqi.maxSubKeyLen + "\n");
  112.         Textout.appendText("maxClassLen = " + rqi.maxClassLen + "\n");
  113.         Textout.appendText("values= " + rqi.values + "\n");
  114.         Textout.appendText("maxValueNameLen= " + rqi.maxValueNameLen + "\n");
  115.         Textout.appendText("maxValueLen= " + rqi.maxValueLen + "\n");
  116.         Textout.appendText("securityDescriptor = " + rqi.securityDescriptor + "\n");
  117.         Textout.appendText("lastWriteTime = " + rqi.lastWriteTime + "\n");
  118.         
  119.         Textout.appendText("Now enumerating all the sub-values\n");
  120.         RegKeyEnumValue rev;
  121.         int i=0;
  122.         while(i >= 0)
  123.         {
  124.             rev=rk.enumValue(i++); 
  125.             if( rev == null )
  126.                 break;
  127.             if( rev instanceof com.ms.lang.RegKeyEnumValueInt )
  128.                 Textout.appendText( i + "th item == " + rev.toString() + "\n");
  129.             else if( rev instanceof com.ms.lang.RegKeyEnumValueString )
  130.                 Textout.appendText( i + "th item == " + rev.toString() + "\n");
  131.             else if( rev instanceof com.ms.lang.RegKeyEnumValue )
  132.                 Textout.appendText("RegKeyEnum came back!!!\n");
  133.             else
  134.                 Textout.appendText("Dont know what came back!!!\n");
  135.         }
  136.  
  137.         Textout.appendText("Creating an array of bytes\n");
  138.         byte b[] = new byte[16];
  139.         for(byte bi=0; bi<16; bi++)
  140.             b[bi] = bi;
  141.  
  142.         rk.setValue("Param 11", b);
  143.         byte c[] = rk.getBinaryValue("Param 11");
  144.         Textout.appendText("Read back in..." + c.toString() + "\n");
  145.         Textout.appendText("Now lets delete 42\n");
  146.         rk.deleteValue("Param3");
  147.         Textout.appendText("Now lets create two sub keys, hello and goodbye\n");
  148.         RegKey rkNew = new RegKey(rk, "hello", RegKey.KEYOPEN_CREATE);
  149.         rkNew = new RegKey(rk, "goodbye", RegKey.KEYOPEN_CREATE);
  150.         Textout.appendText("And now lets delete goodbye again!\n");
  151.         rkNew.close();                // force it close or delete will fail.
  152.         rk.deleteSubKey("goodbye");
  153.  
  154.         Textout.appendText("Ok, now lets call another key\n");
  155.         rkNew = new RegKey(rk, "..", RegKey.KEYOPEN_CREATE);
  156.  
  157.         Textout.appendText("And finally flush the key. We dont need to call it, we have a finalise\n");
  158.         rk.flush();
  159.         rk.close();
  160.         
  161.         Textout.appendText("And now lets open up a top-level key, and enumerate its subkeys\n");
  162.         rk = RegKey.getRootKey(RegKey.LOCALMACHINE_ROOT);
  163.         i=0;
  164.         while(i >= 0)
  165.         {
  166.             String s = rk.enumKey(i++);
  167.             if( s == null)
  168.                 break;
  169.             Textout.appendText( i + "th item = " + s + "\n"); 
  170.         }
  171.  
  172.         Textout.appendText("And finally, lets reopen the first key, for read only and try to write to it!\n");
  173.         Textout.appendText("(On Win95 this makes no difference)\n");
  174.         Textout.appendText("(On Windows/NT you will now get an exception.)\n\n");
  175.         try {
  176.             rk = new RegKey(null, "RegKeySample Test", RegKey.KEYOPEN_READ);
  177.             rk.setValue("Param1", "Daliah Silver");
  178.             rk.close();
  179.         } 
  180.         catch(RegKeyException e) 
  181.         {         
  182.             Textout.appendText("Error: " + e + "\n\n");        
  183.         }
  184.         
  185.     }
  186.  
  187.     //-------------------------------------------------------------------------
  188.  
  189.     public boolean action(Event evt, Object obj)
  190.     {
  191.         boolean fRet = false;
  192.  
  193.         if(evt.target instanceof MenuItem)
  194.         {            
  195.             if(obj.equals ("Start RegKeySample"))
  196.             {        
  197.                 RegKeySample.RunRKTest();
  198.                 fRet = true;
  199.             }
  200.             
  201.             else if(obj.equals("Exit"))
  202.             {
  203.                 System.exit(0);                
  204.                 fRet = true;
  205.             }
  206.  
  207.             if (obj.equals("About RegKeySample.."))
  208.             {                
  209.                 RegKeySample.getAppletInfo();
  210.                 fRet = true;
  211.             }
  212.         }
  213.  
  214.         return fRet;
  215.     }
  216.  
  217.     //-------------------------------------------------------------------------
  218.     public boolean handleEvent(Event evt)
  219.     {
  220.         if(evt.target == this && evt.id == Event.WINDOW_DESTROY)
  221.         {
  222.             System.exit(0);
  223.         }
  224.  
  225.         return super.handleEvent(evt);
  226.     }
  227.  
  228.  
  229.     //-------------------------------------------------------------------------
  230.     public void paint(Graphics g)
  231.     {
  232.         
  233.         g.drawString("Output sent to the console. You can not use this in a browser!", 10, 20);
  234.     }
  235.  
  236.     //-------------------------------------------------------------------------
  237. }
  238.