java 怎么获取注册表中已安装软件列表?JNI调用异常退出。。

jetan 发布于 2013/05/13 14:54
阅读 660
收藏 0

 RegistryKey r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\");  
  if(r.hasSubkeys()) {   
   Iterator i = r.subkeys();
   int count=1;
     while(i.hasNext()) {       
     RegistryKey x = (RegistryKey)i.next();  
 
   
   if(x.hasValue("DisplayName"))
       {
        System.out.println("软件名称:"+x.getValue("DisplayName").getStringValue());
 
      
       
       }

    
       }
   }

 

 

 

Exception in thread "main" ca.beq.util.win32.registry.Win32Exception: 系统找不到指定的文件。

 at ca.beq.util.win32.registry.RegistryKey.hasValue(Native Method)
 at com.zhongwang.RJSJ.Registry.GetInfo.getList(GetInfo.java:127)
 at com.zhongwang.RJSJ.Registry.GetInfo.main(GetInfo.java:151)

 

 

 

 

加载中
0
尐帥鱼
尐帥鱼
直接用第三方的吧   hyperic-sigar
尐帥鱼
尐帥鱼
回复 @jetan : RegistryKey rk = RegistryKey.LocalMachine.openSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall");//用于打开注册表目录。 namesList = rk.getSubKeyNames();//获取注册表中的所有子键名。
jetan
jetan
这个没有操作读取注册表的内容
0
不是小白
不是小白
你直接运行cmd命令不ok了?
jetan
jetan
晕,超级慢
0
jetan
jetan

我知道什么原因了,不支持中文读取出现乱码导致的!!!

SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\???????????? 1.00
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\???????
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\???????????? 1.0
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\??????
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\??????????
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\??????2012_is
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\????????
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\??????????V2.32 ??

 

0
jetan
jetan
但是转不了码,悲剧!
返回顶部
顶部