programming/java

RegistryKey 를 이용한 윈도우즈 레지스트리 변경하기

labj 2012. 3. 20. 22:07

지금 좌석예약을 하고 있는데 PC실 지정PC에서 홈페이지를 통해 좌석배정, 좌석예약이 되도록 해달라는 요구사항이 나왔다.

 

해결 방법은 PC에서 홈페이지를 띄우고 예약, 배정이 되도록 하는 것이다.

지정PC에서는 좌석배정, 좌석예약만 되도록 하려고 보니까

full screen에 alt+del+ctrl이 먹지 않도록 해야 할 것 같다.

 

1. 찾아보니 윈도우 registry 값을 변경하여 작업관리자를 막는 방법이 있다.

registry editor도 사용못하게 하는 방법이 있다.

 

2. 자바(jsp)에서 윈도우 registry를 변경하는 방법을 찾아보니

http://sourceforge.net/ 에 jRegistryKey(A simple yet robust API for accessing the Windows registry from Java) 라는 project가 있다.

 

이걸 이용하면 될 것 같다.

 


import ca.beq.util.win32.registry.*;
import java.util.Iterator; 
public class RegistryTest1 {
    public static void main(String[] args) {
        RegistryKey r;
        RegistryValue v;
        
        r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "Software\\Keytest");
        r.create(); // 새로운 키 생성
        r.createSubkey("SubKey1"); // 서브 키 생성
        r.createSubkey("SubKey2");
        
        //값 쓰기
        v = new RegistryValue("testValue1", ValueType.REG_SZ, "test");
        r.setValue(v);
        v = new RegistryValue("testValue2", ValueType.REG_DWORD, 0);
        r.setValue(v);
        
        //서브키에 값쓰기
        r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,
                                "Software\\Keytest\\SubKey1");
        v = new RegistryValue("testSubValue1", ValueType.REG_SZ, "test");
        r.setValue(v);
        v = new RegistryValue("testSubValue2", ValueType.REG_DWORD, 0);
        r.setValue(v);
        
        // 서브키 삭제
        try {
            r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,
                                "Software\\Keytest\\SubKey2");
            r.delete();
        } catch(RegistryException re) {
            re.printStackTrace();
        }
        
        //서브 키를 찾아서 계속 반환
        r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,
                                "Software\\Keytest");
        if(r.hasSubkeys()) {
            Iterator i = r.subkeys();
            while(i.hasNext()) {
                r = (RegistryKey)i.next();
                System.out.println(r.toString());
            }
        }
        
        //키 안의 값들을 반환
        r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,
                                "Software\\Keytest");
        if(r.hasValues()) {
            Iterator i = r.values();
            while(i.hasNext()) {
                v = (RegistryValue)i.next();
                System.out.println(v.toString());
            }
        }
    }
}

 

 

'programming > java' 카테고리의 다른 글

SOAP 시작하기  (0) 2012.03.21
작업관리자 사용못하게 막기  (0) 2012.03.20
레지스트리 에디터 사용못하게 막기  (0) 2012.03.20
java ibm 강좌  (0) 2012.03.20
compiling Protocol Buffers  (0) 2012.03.20