001    /*
002     * Copyright 2005,2009 Ivan SZKIBA
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.ini4j.tutorial;
017    
018    import org.ini4j.Reg;
019    
020    import static org.junit.Assert.*;
021    
022    import java.io.File;
023    import java.io.IOException;
024    
025    //<editor-fold defaultstate="collapsed" desc="apt documentation">
026    //|
027    //|                -------------------------
028    //|                Windows Registry Tutorial
029    //|
030    //|Windows Registry Tutorial - Read/Write windows registry
031    //|
032    //| Yes, it is possible now to read/write registry from java programs
033    //| without native (JNI) code !
034    //|
035    //</editor-fold>
036    public class WindowsRegistryTutorial extends AbstractTutorial
037    {
038        public static final String FILENAME = "../sample/dwarfs.reg";
039    
040        public static void main(String[] args) throws Exception
041        {
042            if (Reg.isWindows())
043            {
044                new WindowsRegistryTutorial().run(filearg(args));
045            }
046        }
047    
048        @Override protected void run(File arg) throws Exception
049        {
050            sample01();
051            sample02();
052            sample03();
053        }
054    
055    //|
056    //|* Write
057    //|
058    //| Lets write something to registry
059    //{
060        void sample01() throws IOException
061        {
062            Reg reg = new Reg();
063            Reg.Key key = reg.add("HKEY_CURRENT_USER\\hello");
064    
065            key.put("world", "Hello World !");
066            reg.write();
067    //}
068    //| This code will create a "hello" key in HKEY_CURRENT_USER hive, and
069    //| put "Hello World !" with name "world".
070        }
071    
072    //|
073    //|* Read
074    //|
075    //| Lets read something from Control Panel settings...
076    //{
077        void sample02() throws IOException
078        {
079            Reg reg = new Reg("HKEY_CURRENT_USER\\Control Panel");
080            Reg.Key cp = reg.get("HKEY_CURRENT_USER\\Control Panel");
081            Reg.Key sound = cp.getChild("Sound");
082            String beep = sound.get("Beep");
083    
084    //}
085    //|
086        }
087    
088    //|
089    //|* Create environment variable
090    //|
091    //| Lets create a new environment variable under current users environment....
092    //{
093        void sample03() throws IOException
094        {
095            Reg reg = new Reg();
096            Reg.Key env = reg.add("HKEY_CURRENT_USER\\Environment");
097    
098            env.put("SAMPLE_HOME", "c:\\sample");
099            reg.write();
100    //}
101    //| Thats it ! Now your environment contains variable SAMPLE_HOME ! Unfortunetly
102    //| you have to restart Windows to see this variable.... but hey, we crated new
103    //| environment variable from java without any native code !
104        }
105    }