Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Blitzkrieg' en 16 Diciembre 2009, 19:09 pm



Título: Programas instalados.
Publicado por: Blitzkrieg' en 16 Diciembre 2009, 19:09 pm
Buenas camaradas,

Para un nuevo proyecto, debo saber los programas instalados en la PC desde Java.

¿Hay forma de hacerlo desde Java o necesariamente tengo que hacerlo en otro lenguaje y llamarlo desde Java?

Gracias de antemano.


Título: Re: Programas instalados.
Publicado por: Leyer en 16 Diciembre 2009, 19:51 pm
mm creo que no se puede aunke no lo he intentado buscare la forma  :-\  supongo que se usaria Java Native unido con ASM o / c|c++


Título: Re: Programas instalados.
Publicado por: Casidiablo en 16 Diciembre 2009, 20:09 pm
La verdad no conozco ningún API que haga esto. Sin embargo lo puedes hacer a mano, y no creo que necesites programarlo en otro lenguaje. Te lo pongo de esta manera: Java es multiplataforma... ¿necesitas que tu programa funcione para cualquier SO? Si es así, tienes que tener en cuenta que en cada sistema operativo esa información se obtiene de distinta manera. No puedes aplicar el mismo método para Windows, OpenSolaris, o incluso entre diferentes versiones de Linux es distinto.

Mi consejo: enfócate en los SO que te interesa. De mi experiencia con Windows, se que los programas instalados de la manera tradicional quedan en el registro del sistema... así que, para Windows, bastaría con que leyeras las claves del registro indicado y de esa manera sabrás que aplicaciones tiene instaladas el equipo. Aquí hay algunas ideas para manejar el registro:

http://foro.elhacker.net/java/java_y_el_regedit-t247399.0.html

En otros sistemas operativos bastaría con ejecutar comandos del sistema para obtener esa información... en OpenSolaris usando pkg_*, en Debian y derivados (Ubuntu, por ejemplo) usando aptitude, en Gentoo usando eix, en Arch/Linux usando Pacman, en FreeBSD usando pkg_db, en Fedora/openSuse/etc. usando yum... y así me podría quedar toda la tarde :D

En fin, espero que entiendas la idea.

Un saludo!


Título: Re: Programas instalados.
Publicado por: Blitzkrieg' en 16 Diciembre 2009, 20:13 pm
Jumm parece que en Windows va a ser complicadito  :xD :xD

Voy a mirar esto, gracias Casidiablo  ;D


Título: Re: Programas instalados.
Publicado por: Leyer en 16 Diciembre 2009, 20:18 pm
yo opino que si es es windows utilizes un script  bat ,lerlos y ya algo como este que encontre por hay. :P

Código
  1. @echo off
  2. regedit /a %TEMP%\filename.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
  3. for /f "Skip=1 Tokens=*" %%i in ('type %TEMP%\Filename.reg') do set line="%%i"&call :parse
  4. goto :EOF
  5. :parse
  6. set work=%line:~2,11%
  7. set work=%work:"=%
  8. If NOT "%work%" EQU "DisplayName" goto :EOF
  9. set work=%line:~16,120%
  10. set work=%work:"=%
  11. @echo %work%
  12. @echo %work% >> listado_programas.txt


Título: Re: Programas instalados.
Publicado por: Blitzkrieg' en 16 Diciembre 2009, 20:24 pm
yo opino que si es es windows utilizes un script  bat ,lerlos y ya algo como este que encontre por hay. :P

Código
  1. @echo off
  2. regedit /a %TEMP%\filename.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
  3. for /f "Skip=1 Tokens=*" %%i in ('type %TEMP%\Filename.reg') do set line="%%i"&call :parse
  4. goto :EOF
  5. :parse
  6. set work=%line:~2,11%
  7. set work=%work:"=%
  8. If NOT "%work%" EQU "DisplayName" goto :EOF
  9. set work=%line:~16,120%
  10. set work=%work:"=%
  11. @echo %work%
  12. @echo %work% >> listado_programas.txt

Segun ese codigo, se guardan el listado de programas en un TXT, entonces lo que tendria que hacer es leer el TXT   :huh:


Título: Re: Programas instalados.
Publicado por: Casidiablo en 16 Diciembre 2009, 20:25 pm
Joo... échale un ojo ese code que te puso L-EYER... solo tienes que preocuparte por:

* Ejecutarlo con Java
* Leer los datos del archivo
* Hacer lo que quieras con los archivos

Un saludo!


Título: Re: Programas instalados.
Publicado por: Blitzkrieg' en 16 Diciembre 2009, 20:30 pm
Ya mismo me pongo a trabajar,

Gracias  ;D


Título: Re: Programas instalados.
Publicado por: 1mpuls0 en 16 Diciembre 2009, 22:07 pm
 :¬¬ :¬¬

Ja que loco!!!

aa si a esas van entonces puedes usar

Programas.bat
Código:
@echo off
wmic product get name > product.txt
@pause

 :xD

Lo malo es que es un poco tardado.

Y solo te faltaria implementar lo que te dijo Casidiablo

Saludos