我想用java 在注册表中得到一个'名称'为MessagePath的 '数据',想请教一下,我应该怎么做?
解决方案 »
- JDialog监听器问题
- 如何快速学习struts 1.0啊
- 怎样用netbean编译64bit 程式?
- 为什么.isFile()返回的是FALSE 呢,明明是TXT文件啊?
- 我想写个天气预报系统
- 请问如何输出一个UTF-8编码格式的文件?
- 问两个很简单的问题
- PreparedStatement中的setArray(int i, Array x) 应该怎样使用???
- ******jni高手请进,关于在jni中调用c/c++编写的dll的问题
- scjp的培训参考书谁有?请联系:[email protected],指定参考书是哪个出版社的?
- 有些网页是用*.cfm结尾的,是什么?
- 求救一个Applet问题,请高手指点~
import java.util.prefs.Preferences;public class RegHack {
private static final int HKEY_CURRENT_USER = 0x80000001; private static final int KEY_QUERY_VALUE = 1; private static final int KEY_SET_VALUE = 2; private static final int KEY_READ = 0x20019; public static void main(String args[]) {
final Preferences userRoot = Preferences.userRoot();
final Class clz = userRoot.getClass();
try {
final Method mOpenKey = clz.getDeclaredMethod("openKey",
byte[].class, int.class, int.class);
mOpenKey.setAccessible(true); final Method mCloseKey = clz.getDeclaredMethod("closeKey",
int.class);
mCloseKey.setAccessible(true); final Method mWinRegQueryValue = clz.getDeclaredMethod(
"WindowsRegQueryValueEx", int.class, byte[].class);
mWinRegQueryValue.setAccessible(true);
final Method mWinRegEnumValue = clz.getDeclaredMethod(
"WindowsRegEnumValue1", int.class, int.class, int.class);
mWinRegEnumValue.setAccessible(true);
final Method mWinRegQueryInfo = clz.getDeclaredMethod(
"WindowsRegQueryInfoKey1", int.class);
mWinRegQueryInfo.setAccessible(true); final String subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; Integer hSettings = (Integer) mOpenKey.invoke(userRoot,
toByteArray(subKey), KEY_READ, KEY_READ);
byte[] b = (byte[]) mWinRegQueryValue.invoke(userRoot, hSettings
.intValue(), toByteArray("ProxyServer"));
String s = b != null ? new String(b).trim() : null;
System.out.println(s);
mCloseKey.invoke(Preferences.userRoot(), hSettings); } catch (Exception e) {
e.printStackTrace();
}
} private static byte[] toByteArray(String str) {
byte[] result = new byte[str.length() + 1];
for (int i = 0; i < str.length(); i++) {
result[i] = (byte) str.charAt(i);
}
result[str.length()] = 0;
return result;
}}