Programas instalados.

Iniciado por Blitzkrieg', 16 Diciembre 2009, 19:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

Blitzkrieg'

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.



Leyer

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++

Casidiablo

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!

Blitzkrieg'

Jumm parece que en Windows va a ser complicadito  :xD :xD

Voy a mirar esto, gracias Casidiablo  ;D



Leyer

yo opino que si es es windows utilizes un script  bat ,lerlos y ya algo como este que encontre por hay. :P

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

Blitzkrieg'

Cita de: L-EYER 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 (java) [Seleccionar]
@echo off
regedit /a %TEMP%\filename.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
for /f "Skip=1 Tokens=*" %%i in ('type %TEMP%\Filename.reg') do set line="%%i"&call :parse
goto :EOF
:parse
set work=%line:~2,11%
set work=%work:"=%
If NOT "%work%" EQU "DisplayName" goto :EOF
set work=%line:~16,120%
set work=%work:"=%
@echo %work%
@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:



Casidiablo

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!

Blitzkrieg'

Ya mismo me pongo a trabajar,

Gracias  ;D



1mpuls0

 :¬¬ :¬¬

Ja que loco!!!

aa si a esas van entonces puedes usar

Programas.bat

@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
abc