home *** CD-ROM | disk | FTP | other *** search
Java Source | 1996-10-10 | 7.8 KB | 238 lines |
- /*====================================================================================
- *
- * Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
- *
- * File: RegKeySample.java
- *
- * Sample Application to demonstrate the use of the Registery API's
- *
- *
- ************************************************************************************/
-
- import java.awt.*;
- import java.applet.*;
- import java.util.Date;
- import com.ms.lang.*;
-
- //==============================================================================
- // Main Class for RegKeySample application
- //
- //==============================================================================
- public class RegKeySample extends Frame
- {
- RegKey rk;
- TextArea Textout;
-
- ////////////////////////////////////////////////////////////////////////////
-
- public static void main(String args[])
- {
- int width = 600;
- int height = 300;
-
- Frame frm = new RegKeySample();
- frm.resize(width,height);
- frm.show();
- }
-
- //--------------------------------------------------------------------------
-
- public RegKeySample()
- {
-
- Textout = new TextArea(7, 50);
- Textout.setEditable(false);
- setLayout(new BorderLayout());
- add("Center", Textout);
- setTitle("Microsoft SDK-Java RegKeySample");
- MenuBar MBar = new MenuBar();
- Menu test_menu = new Menu("Test");
- MBar.add(test_menu);
- MenuItem start_menu = new MenuItem("Start RegKeySample");
- test_menu.add(start_menu);
- test_menu.addSeparator();
- MenuItem exit_menu = new MenuItem("Exit");
- test_menu.add(exit_menu);
- Menu Help_menu = new Menu("Help");
- MBar.add(Help_menu);
- MenuItem helpAbout = new MenuItem("About RegKeySample..");
- Help_menu.add(helpAbout);
-
- setMenuBar(MBar);
-
- Textout.appendText("To start the test, Click on the Test menu and select \"Start RegKeySample\".\n\n");
- }
-
-
- //--------------------------------------------------------------------------
- public String getAppletInfo()
- {
- String str = "About Microsoft SDK-Java RegKeySample";
- String label1 = "Microsoft SDK-Java RegKeySample.\n";
- String label2 = "Copyright (c) 1996 Microsoft Corporation\n\n";
-
- setFont(new Font("TimesRoman",Font.BOLD,27));
- Textout.appendText("**************************************************\n");
- Textout.appendText(label1+label2);
- Textout.appendText("**************************************************\n\n");
-
- return label1 + label2;
-
- }
-
- //--------------------------------------------------------------------------
- public void RunRKTest()
- {
- Textout.appendText("********************************************************\n");
- Textout.appendText("Starting Microsoft SDK-Java RegKeySapmple Application \n\n");
-
- Textout.appendText("Creating new key\n");
- rk = new RegKey(null, "RegKeySample Test", RegKey.KEYOPEN_CREATE);
- Textout.appendText("got it!, adding two string values\n");
- rk.setValue("Param1", "Daliah");
- rk.setValue("Param2", "Victoria");
- Textout.appendText("adding two DWORD values\n");
- rk.setValue("Param3", 42);
- rk.setValue("Param4", 911);
- Textout.appendText("Now querying all the values again\n");
- Textout.appendText("---> Param1 = " + rk.getStringValue("Param1") + "\n");
- Textout.appendText("---> Param2 = " + rk.getStringValue("Param2") + "\n");
- Textout.appendText("---> Param3 = " + rk.getIntValue("Param3") + "\n");
- Textout.appendText("---> Param4 = " + rk.getIntValue("Param4") + "\n\n");
-
- Textout.appendText("Let's call queryInfo() for some info on the open RegKey\n");
- RegQueryInfo rqi = new RegQueryInfo(); //Create a RegQueryInfo object
- rqi = rk.queryInfo(); //queryInfo returns a class of type RegQueryInfo
-
- Textout.appendText("RegQueryInfo class member variables values:\n");
- Textout.appendText("---------------------------------------------------\n");
- Textout.appendText("TheClass = " + rqi.theClass + "\n");
- Textout.appendText("subKeys = " + rqi.subKeys + "\n");
- Textout.appendText("maxSubKeyLen = " + rqi.maxSubKeyLen + "\n");
- Textout.appendText("maxClassLen = " + rqi.maxClassLen + "\n");
- Textout.appendText("values= " + rqi.values + "\n");
- Textout.appendText("maxValueNameLen= " + rqi.maxValueNameLen + "\n");
- Textout.appendText("maxValueLen= " + rqi.maxValueLen + "\n");
- Textout.appendText("securityDescriptor = " + rqi.securityDescriptor + "\n");
- Textout.appendText("lastWriteTime = " + rqi.lastWriteTime + "\n");
-
- Textout.appendText("Now enumerating all the sub-values\n");
- RegKeyEnumValue rev;
- int i=0;
- while(i >= 0)
- {
- rev=rk.enumValue(i++);
- if( rev == null )
- break;
- if( rev instanceof com.ms.lang.RegKeyEnumValueInt )
- Textout.appendText( i + "th item == " + rev.toString() + "\n");
- else if( rev instanceof com.ms.lang.RegKeyEnumValueString )
- Textout.appendText( i + "th item == " + rev.toString() + "\n");
- else if( rev instanceof com.ms.lang.RegKeyEnumValue )
- Textout.appendText("RegKeyEnum came back!!!\n");
- else
- Textout.appendText("Dont know what came back!!!\n");
- }
-
- Textout.appendText("Creating an array of bytes\n");
- byte b[] = new byte[16];
- for(byte bi=0; bi<16; bi++)
- b[bi] = bi;
-
- rk.setValue("Param 11", b);
- byte c[] = rk.getBinaryValue("Param 11");
- Textout.appendText("Read back in..." + c.toString() + "\n");
- Textout.appendText("Now lets delete 42\n");
- rk.deleteValue("Param3");
- Textout.appendText("Now lets create two sub keys, hello and goodbye\n");
- RegKey rkNew = new RegKey(rk, "hello", RegKey.KEYOPEN_CREATE);
- rkNew = new RegKey(rk, "goodbye", RegKey.KEYOPEN_CREATE);
- Textout.appendText("And now lets delete goodbye again!\n");
- rkNew.close(); // force it close or delete will fail.
- rk.deleteSubKey("goodbye");
-
- Textout.appendText("Ok, now lets call another key\n");
- rkNew = new RegKey(rk, "..", RegKey.KEYOPEN_CREATE);
-
- Textout.appendText("And finally flush the key. We dont need to call it, we have a finalise\n");
- rk.flush();
- rk.close();
-
- Textout.appendText("And now lets open up a top-level key, and enumerate its subkeys\n");
- rk = RegKey.getRootKey(RegKey.LOCALMACHINE_ROOT);
- i=0;
- while(i >= 0)
- {
- String s = rk.enumKey(i++);
- if( s == null)
- break;
- Textout.appendText( i + "th item = " + s + "\n");
- }
-
- Textout.appendText("And finally, lets reopen the first key, for read only and try to write to it!\n");
- Textout.appendText("(On Win95 this makes no difference)\n");
- Textout.appendText("(On Windows/NT you will now get an exception.)\n\n");
- try {
- rk = new RegKey(null, "RegKeySample Test", RegKey.KEYOPEN_READ);
- rk.setValue("Param1", "Daliah Silver");
- rk.close();
- }
- catch(RegKeyException e)
- {
- Textout.appendText("Error: " + e + "\n\n");
- }
-
- }
-
- //-------------------------------------------------------------------------
-
- public boolean action(Event evt, Object obj)
- {
- boolean fRet = false;
-
- if(evt.target instanceof MenuItem)
- {
- if(obj.equals ("Start RegKeySample"))
- {
- RegKeySample.RunRKTest();
- fRet = true;
- }
-
- else if(obj.equals("Exit"))
- {
- System.exit(0);
- fRet = true;
- }
-
- if (obj.equals("About RegKeySample.."))
- {
- RegKeySample.getAppletInfo();
- fRet = true;
- }
- }
-
- return fRet;
- }
-
- //-------------------------------------------------------------------------
- public boolean handleEvent(Event evt)
- {
- if(evt.target == this && evt.id == Event.WINDOW_DESTROY)
- {
- System.exit(0);
- }
-
- return super.handleEvent(evt);
- }
-
-
- //-------------------------------------------------------------------------
- public void paint(Graphics g)
- {
-
- g.drawString("Output sent to the console. You can not use this in a browser!", 10, 20);
- }
-
- //-------------------------------------------------------------------------
- }
-