日期:2014-05-20  浏览次数:20712 次

JAVA写注册表的问题
用JAWIN能读写注册表     但是写只能写项~没法写字符串值   实在是很郁闷
只要把路径的值写到注册表里去,社么奇招怪法都行~~~分不够我再加

------解决方案--------------------
首先声明,转的高手贴,挨骂肯定了,就是希望知识共享,一起讨论
他的名字叫realplay(代码录入员),给他分就行了


////////////////////////////////////////////////////////////////////////////////////
23 楼realplay(代码录入员)回复于 2002-10-12 22:56:25 得分 0 你要下载
Microsoft SDK for Java 4.0

安装完之后
在安装目录下有个
docs目录
你看一下sdkdocs.chm这个帮助文件

里面有关于
com.ms.com
com.ms.lang
。。。
这些包的应用说明啊


上面的程序只有这一段是有用的

说明:
通过RegKey类,来访问CLASSES_ROOT\Word.Basic\CLSID
的键值

// Get the Registry Key for CLASSES_ROOT
RegKey root = RegKey.getRootKey(RegKey.CLASSES_ROOT);

// From CLASSES_ROOT, get the key for Word.Basic
RegKey wbkey = new RegKey(root,
"Word.Basic ", RegKey.KEYOPEN_READ);

// From Word.Basic, get the CLSID
RegKey clsid = new RegKey(wbkey, "CLSID ",
RegKey.KEYOPEN_READ);

// Retrieve the CLSID from the CLSID key (it 's the default value)
String classID = ((RegKeyEnumValueString)clsid.
enumValue(0)).value;

明白了吧????很简单的,你要读写其它的键值也是一样的啊。


SDK FORM JAVA里面包含了大量的例子包括用java来开发com
activex组件等等。。。
还有用java开发ASP的组件



//////////////////////////////////////////////////////////////////////
到这里去下载

http://download.microsoft.com/download/javasdk/install/4.0/win98/en-us/SDKJava40.exe
///////////////////////////////////////////////////////////////////////
这也是他说的


------解决方案--------------------
/*读系统目录下的所有注册变量 path:为相对于Prefs下面的注册表目录*/
public static void readAllReg(String path){
path=StringUtil.nullToEmpty(path);
Preferences prefsdemo =Preferences.systemRoot().node(path);
try{
String key1[]=prefsdemo.keys();
int len=key1.length;
for(int i=0;i <len;i++){
String name=key1[i];
String value=prefsdemo.get(name,null);
}
}catch(Exception e){

}
}
/*根据名称读注册表*/
public static boolean readRegByName(String regName,String path){
boolean bool=false;
path=StringUtil.nullToEmpty(path);
Preferences prefsdemo =Preferences.systemRoot().node(path);
try{
String key1[]=prefsdemo.keys();
int len=key1.length;
for(int i=0;i <len;i++){
String name=key1[i];
if(regName.equals(name)){
return true;
}
}
}catch(Exception e){

}
return bool;
}
/*写注册表*/
public static void writeReg(String name,String value,String path){
path=StringUtil.nullToEmpty(path);
Preferences prefsdemo =Preferences.systemRoot().node(path);
try{
prefsdemo.put(name,value);
}catch(Exception e){

}
}
/*删除所有注册项*/
public static void delAllReg(String path){
path=StringUtil.nullToEmpty(path);
Preferences prefsdemo =Preferences.systemRoot().node(path);
try{
prefsdemo.removeNode();
}catch(Exception e){