Java 언어에서 레지스트리 생성, 삽입, 삭제, 수정 방법Java 언어에서 레지스트리 생성, 삽입, 삭제, 수정 방법
Posted at 2011. 5. 13. 17:19 | Posted in 카테고리 없음01.
import
com.sun.jna.platform.win32.Advapi32Util;
02.
import
com.sun.jna.platform.win32.WinReg;
03.
04.
public
class
Test {
05.
private
static
String regPath;
06.
private
static
String regName;
07.
private
static
String regValue;
08.
09.
Test() {
10.
regPath =
null
;
11.
regName =
null
;
12.
regValue =
null
;
13.
}
14.
15.
public
static
void
main(String args[]) {
16.
// 경로, 이름, 데이터 변수 초기화
17.
regPath =
"Software\\Microsoft\\Windows\\CurrentVersion\\Run"
;
18.
regName =
"MyProgram"
;
19.
regValue =
"\"C:\\Program Files\\SetReg\\SetReg.jar\" /autorun"
;
20.
21.
// 시스템 사용자 이름 출력
22.
System.out.println(
"Your Name is "
+ Advapi32Util.getUserName() +
"."
);
23.
24.
// 레지스트리 키 생성
25.
Advapi32Util.registryCreateKey(WinReg.HKEY_CURRENT_USER, regPath, regName);
26.
27.
// 레지스트리 값 설정
28.
Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, regPath, regName, regValue);
29.
30.
// 레지스트리 값 읽기
31.
System.out.println(Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, regPath, regName));
32.
33.
// 레지스트리 값 삭제
34.
Advapi32Util.registryDeleteValue(WinReg.HKEY_CURRENT_USER, regPath, regName);
35.
36.
// 레지스트리 키 삭제(값 삭제가 선행)
37.
Advapi32Util.registryDeleteKey(WinReg.HKEY_CURRENT_USER, regPath, regName);
38.
}
39.
}
Java Native AccessJava Native Access
Posted at 2011. 5. 13. 16:57 | Posted in 카테고리 없음Java Native Access provides Java programs easy access to native shared libraries without using the Java Native Interface. JNA's design aims to provide native access in a natural way with a minimum of effort. No boilerplate or generated glue code is required.
현재 JNA 최신 버전은 3.2.7 인데 최근에 3.2.8로 업데이트 되었다. 이것이 필요하게 된 이유는 JAVA를 이용하여 윈도우 프로그래밍을 할 경우 한계점이 발생하기 때문이다. 예를 들어 레지스트리를 제어(생성, 삽입, 삭제, 수정)하기 위해서는 JNA가 필요하다.
01.
import
com.sun.jna.Library;
02.
import
com.sun.jna.Native;
03.
import
com.sun.jna.Platform;
04.
05.
/** Simple example of native library declaration and usage. */
06.
public
class
HelloWorld {
07.
public
interface
CLibrary
extends
Library {
08.
CLibrary INSTANCE = (CLibrary) Native.loadLibrary(
09.
(Platform.isWindows() ?
"msvcrt"
:
"c"
), CLibrary.
class
);
10.
void
printf(String format, Object... args);
11.
}
12.
13.
public
static
void
main(String[] args) {
14.
CLibrary.INSTANCE.printf(
"Hello, World\n"
);
15.
for
(
int
i =
0
; i < args.length; i++) {
16.
CLibrary.INSTANCE.printf(
"Argument %d: %s\n"
, i, args[i]);
17.
}
18.
}
19.
}
위의 예제는 위키디피아에서 Java에서 printf 함수를 사용하여 "Hello, World"를 출력하는 소스 코드이다. 이것을 실행하기 위해서는 jna.jar 파일과 platform.jar 파일을 외부 라이브러리로 등록해 주어야 한다.