首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA写注册表的有关问题

2012-01-13 
JAVA写注册表的问题用JAWIN能读写注册表但是写只能写项~没法写字符串值实在是很郁闷只要把路径的值写到注

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){


}
}
/*删除单个注册项*/
public static void delRegByName(String name,String path){
path=StringUtil.nullToEmpty(path);
Preferences prefsdemo =Preferences.systemRoot().node(path);
try{
prefsdemo.remove(name);
}catch(Exception e){

}
}
/*导出注册表为xml文件*/
public static void outPutReg(String regPath,String filePath){
regPath=StringUtil.nullToEmpty(regPath);
Preferences prefsdemo =Preferences.systemRoot().node(regPath);
try
{
FileOutputStream fos = new FileOutputStream(filePath);
prefsdemo.exportNode(fos);
}catch (Exception e)
{
System.err.println( "Cannot export nodes: " + e);
}
}

热点排行