Apagar pc con funciones propias de Java

Iniciado por _rez3t45_, 28 Septiembre 2009, 18:54 PM

0 Miembros y 1 Visitante están viendo este tema.

_rez3t45_

holas  :D

toy aprendiendo a uzar los sockets en java y recien tengo 1 clase y ya tengo un proyecto de tarea ,,,, es el de controlar las pc conectadas a mi red :

tengo varias dudas pero las ire buscando, :)

mi pregunta es si existe alguna forma de apagar una pc uzando las mismas funciones de java ...
por que para apagarlo comunmente he visto esto

Runtime p = Runtime.getRuntime();
p.exec("cmd /c shutdown -s -t 400";


pero mi duda es si es que este comando funciona tambien en linux,,por que creo q
shutdown  es del mismo windows,,,
o me equivoco y este comando ejecutado en cualquier plataforma tiene el mismo resultado .......


y otra pregunta es como detectar los porcesos que actualmente estan corriendo en
mi pc ,,
ya que el comando tasklist me lista todos los procesos :
algo azi creo:

Runtime p = Runtime.getRuntime();
p.exec("cmd /c stasklist ");


bueno buscando encontre esta referencia :
http://www.rgagnon.com/javadetails/java-0593.html

pero al ejecutarlo me lista puras cadenas asi :   ***** ***** ****** *****
,o me podrian explicar un poco mas de que es lo que hace este codigo



weno amios , gracias por leer too mi rollo xD , espero su ayuda pleaze  ! ;D

bye..
<-- ZmPlmnTe Punk -->

egyware

Usa la clase process para poder acceder a programas.

Windows

Apagar PC
   shutdown /s
Mostrar procesos
   tasklist

Linux

Apagar pc
  [sudo] shutdown -s now
Mostrar Procesos
  ps


Debci

Cita de: egyware en 28 Septiembre 2009, 19:46 PM
Usa la clase process para poder acceder a programas.

Windows

Apagar PC
   shutdown /s
Mostrar procesos
   tasklist

Linux

Apagar pc
  [sudo] shutdown -s now
Mostrar Procesos
  ps


exactamanete lo que tiene capado java en control de sistema fuera de su api lo puedes recobrar y hacer mas poderoso todavia con runtimes,ejecutando programas de cada s.o., ademas proporciona metodos de muy buen control de este objeto una vez instanciado, mucha info del proceso y control de este.

Saludos

_rez3t45_

weno esto me da como respuesta que mi pc se apage en windows

Runtime p = Runtime.getRuntime();
p.exec("cmd /c shutdown -s -t 400";

..... esta bien 
pero si yo ejecuto esto

Runtime p = Runtime.getRuntime();
p.exec("cmd /c tasklist ");


me da como respuesta varias filas como podria hacer la lectura de los procesos
por que lo quiero mostrar en un Jtable,
como podria hacerlo ?

osea llenar la tabla se pero como haria para capturar cada proceso,,, que metodo se uzaria , en visual con sql se uza el Reader,(que me lee todas las filas ).
pero en JAva como haria ...

seria capturar el 1ro y guardarlo en un vector ,, luego teniendo el arreglo vaciar los datos a la  tabla .......

como seria ?




<-- ZmPlmnTe Punk -->

43H4FH44H45H4CH49H56H45H

Puedes hacer algo asi:
Código (java) [Seleccionar]
import java.io.BufferedReader;
import java.io.InputStreamReader;


Código (java) [Seleccionar]
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        try{
            String str_proceso = null;
            int i = 0;
            String admin = System.getenv("windir") + "\\system32\\" + "tasklist.exe";
            Process proceso = Runtime.getRuntime().exec(admin);
            BufferedReader input = new BufferedReader(new InputStreamReader(proceso.getInputStream()));
            while((str_proceso = input.readLine()) != null){
                jTable1.setValueAt(str_proceso, i, 0);
                 i++;
                }
            input.close();
            }catch(Exception e){
                e.printStackTrace();
                }
    }


Este ejemplo lo tenia guardado de alguna pagina que no recuerdo, faltaria agregar en tiempo de ejecucion las filas necesarias para todos los procesos, en otro caso añadirlas en el diseño una cantidad suficiente que pueda almacenar todos los datos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

_rez3t45_

holazzz

hermano 43H4FH44H45H4CH49H56H45H   ....
azu  ;-)        ,, me ayudaste un monton ,muchas  gracias por tu respuesta
hay esta todo ok ,,,
azi que de esa forma se invoca a la lectura de filas de resultados...
bueno este ejemplo me ayudara bastante .

gracias a toos los que me respondieron  xD   ;D
salu2 brothers xD ....
<-- ZmPlmnTe Punk -->

43H4FH44H45H4CH49H56H45H


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Debci

Cita de: _rez3t45_ en 29 Septiembre 2009, 19:34 PM
holazzz

hermano 43H4FH44H45H4CH49H56H45H   ....
azu  ;-)        ,, me ayudaste un monton ,muchas  gracias por tu respuesta
hay esta todo ok ,,,
azi que de esa forma se invoca a la lectura de filas de resultados...
bueno este ejemplo me ayudara bastante .

gracias a toos los que me respondieron  xD   ;D
salu2 brothers xD ....
podrias envezde prediseñar la jtable, hacer que el programa la dinamize y getsione segun los procesos que leas.
Saludos