Boa tarde, tenho um método que le os registros do windows para fazer a verificação dos softwares instalados no pc.poém eu preciso que o seu retorno seja uma lista. Alguém pode me ajudar?
Continua o mesmo problema, eu acho que o problema na hora de interar la no for… só não estou conseguindo enxergar como consertar…
L
Logusmao
Sem o código fica complicado mesmo.
Faça o seguinte: substitui o List pelo Set.
publicstaticListretornar(){Set<String>set=newHashSet<String>();List<String>lista=newArrayList<String>();StringnomePrograma="";RegistryKey.initialize("C:\\Programa17\\nova\\jRegistryKey.dll");RegistryKeykey=newRegistryKey(RootKey.HKLM,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall");for(Iterator<RegistryKey>subkeys=key.subkeys();subkeys.hasNext();){RegistryKeysubkey=subkeys.next();if(subkey.hasValue("DisplayName")){set.add(subkey.getValue("DisplayName").toString().replace("DisplayName:REG_SZ:",""));}if(!set.isEmpty()){lista.addAll(set);//ordernar, se quiser}returnlista;}
Testa para ver se pelo menos puxa a informação que você está querendo.
EDIT 1:
Na verdade, você teria que rodar um for para cada subkey.
publicstaticListretornar(){Set<String>set=newHashSet<String>();List<String>lista=newArrayList<String>();StringnomePrograma="";RegistryKey.initialize("C:\\Programa17\\nova\\jRegistryKey.dll");RegistryKeykey=newRegistryKey(RootKey.HKLM,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall");for(Iterator<RegistryKey>subkeys=key.subkeys();subkeys.hasNext();){RegistryKeysubkey=subkeys.next();for(Iterator<RegistryKey>secondSubkeys=subkey.subkeys();secondSubkeys.hasNext();){RegistryKeysecondSubkey=secondSubkeys.next();if(secondSubkey.hasValue("DisplayName")){set.add(secondSubkey.getValue("DisplayName").toString().replace("DisplayName:REG_SZ:",""));}}}if(!set.isEmpty()){lista.addAll(set);//ordernar, se quiser}returnlista;}
J
JJA11
Oi, td bem?
Ainda não está funcionando… Poxa obrigado mesmo pela ajuda de vcs.
Eu não tenho muita coisa no codigo ainda… tanto qu eu estava testando p ver na tela mesmo se está dando certo ou não… desculpem é que sou novato ainda…
Mas enfim não funciona ainda… Vcs sabem alguma forma de trazer essas informações outra forma?