Foros del Web » Programación para mayores de 30 ;) » Java »

Apagar la PC desde Java

Estas en el tema de Apagar la PC desde Java en el foro de Java en Foros del Web. Hola a todos, quiero saber si hay forma de apagar la PC desde una aplicación hecha en Java, ya sea Windows, Linux, Mac, etc....
  #1 (permalink)  
Antiguo 05/08/2005, 22:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 448
Antigüedad: 20 años, 8 meses
Puntos: 1
Apagar la PC desde Java

Hola a todos, quiero saber si hay forma de apagar la PC desde una aplicación hecha en Java, ya sea Windows, Linux, Mac, etc.
  #2 (permalink)  
Antiguo 06/08/2005, 11:03
 
Fecha de Ingreso: julio-2005
Ubicación: Un bonito lugar feliz!! ujuuuu
Mensajes: 5
Antigüedad: 18 años, 10 meses
Puntos: 0
Orale suena bien interesante tu pregunta, encontré esto.
La verdad no lo he probado y espero que te sirva
  #3 (permalink)  
Antiguo 06/08/2005, 18:55
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
WOAAAAAWWWWW

excelente!!

Código PHP:
import java.io.IOException;

public class 
Comandos{
    
    public static 
void exec(String cmd) {
        try {
            
Runtime.getRuntime().exec(cmd);
        } 
        catch (
IOException e) {
            
System.out.println("Failed");        
        }
    }
    public static 
void main(String[] str) {
        
exec("shutdown -s -t 3600");
        
//exec("shutdown -a");
        //    exec("C:/Program Files/Internet Explorer/IEXPLORE.EXE");
        //    exec("regedit");
    
}

  #4 (permalink)  
Antiguo 07/08/2005, 04:14
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
y a partir de ese codigo, ¿alguien sabria como se puede activar un servicio?, digamos el servidor de mysql
  #5 (permalink)  
Antiguo 07/08/2005, 09:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Ese codigo para reiniciar funciona en Windows XP y superior.

Para arrancar un servicio podes utilizar el ejecutable net: net start nombreServicio

Pero claro, todo esto solo funciona en Windows.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #6 (permalink)  
Antiguo 07/08/2005, 10:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
chido, no sabia que se podian simular los comandos del "CMD" desde java......
  #7 (permalink)  
Antiguo 08/08/2005, 09:10
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
¿como podria averiguar si dicho proceso está en ejecución?
  #8 (permalink)  
Antiguo 08/08/2005, 09:29
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sith
¿como podria averiguar si dicho proceso está en ejecución?
¿El servicio? No conozco ningun ejecutable del Sistema Operativo que te devuelva esa informacion por linea de comandos. Seria muy facil hacer uno si tenes la posibilidad de distribuirlo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 09/08/2005, 03:31
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
¿no existe un homologo al pidof de linux? , realmente lo que yo necesito es que mi aplicación java observe si mysql esta funcionando, que no lo arranca mi aplicacion, y cuando se cierra detengo el servicio, hasta aquí mi aplicacion funciona, gracias a este post, ahora lo que kiero es observar si esta arrancado, para que al salir de mi aplicacion no te cierre el servicio, xq tal vez el cliente q use mi app necesite dicho servicio funcionando para otras cosas y es un rollo tener que estar arrancandolo manualmente cada vez que salga de mi app
  #10 (permalink)  
Antiguo 09/08/2005, 03:39
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sith
¿no existe un homologo al pidof de linux?
Que yo sepa no existe pero te repito que lo podes hacer sin mucha dificultad.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 09/08/2005, 08:04
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
es que no se como hacerlo, supongo que será con algun metodo de la clase Runtime, pero esque hasta antes de este post no conocía de su existencia.
  #12 (permalink)  
Antiguo 09/08/2005, 08:38
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sith
es que no se como hacerlo, supongo que será con algun metodo de la clase Runtime, pero esque hasta antes de este post no conocía de su existencia.
Yo hablaba de hacer un ejecutable nativo de Windows, ya que en definitiva con ese codigo estamos hablando de ejecutar programas externos ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #13 (permalink)  
Antiguo 10/08/2005, 00:03
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
pues eso si que ya no se como cojerlo, podria decorme como o remitirme a algun lugar donde pueda aprenderlo?
  #14 (permalink)  
Antiguo 10/08/2005, 01:12
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
El programa habria que hacerlo con un lenguaje compilado y llamando a la API de Windows.

El flujo del programa seria:
OpenSCManager
OpenService
QueryServiceStatus
CloseServiceHandle(Service)
CloseServiceHandle(Manager)
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #15 (permalink)  
Antiguo 10/08/2005, 02:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Y con net status nombreServicio y parseando la respuesta para ver el estado?
  #16 (permalink)  
Antiguo 10/08/2005, 03:54
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
No existe la opcion status:

"La sintaxis de este comando es:


NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]"
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #17 (permalink)  
Antiguo 10/08/2005, 08:19
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
entonces como podria parsear lo que devuelve el command para controlar las operaciones desde mi app
  #18 (permalink)  
Antiguo 10/08/2005, 08:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Como te comentaba anteriormente:

Cita:
Iniciado por Eternal_Idol
No conozco ningun ejecutable del Sistema Operativo que te devuelva esa informacion por linea de comandos.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #19 (permalink)  
Antiguo 10/08/2005, 13:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Eummm, perdon entonces. Recuerdo que habia unas utilidades para poner en marcha, parar y poder mirar el estado de los servicios. Pense de memoria que era "net status" pero ahora que lo dices, recuerdo que tuve que instalarme unos ejecutables... ahora no recuerdo cuales... quiza googleando.... estoy fuera de la oficina y no vuelvo hasta dentro de dos semanas... :)
  #20 (permalink)  
Antiguo 11/08/2005, 11:39
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
hola Eternal Idol, el flujo este que mencionas, son clases de java?

OpenSCManager
OpenService
QueryServiceStatus
CloseServiceHandle(Service)
CloseServiceHandle(Manager)
  #21 (permalink)  
Antiguo 11/08/2005, 11:45
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sith
hola Eternal Idol, el flujo este que mencionas, son clases de java?

OpenSCManager
OpenService
QueryServiceStatus
CloseServiceHandle(Service)
CloseServiceHandle(Manager)
No.

Cita:
Iniciado por Eternal_Idol
El programa habria que hacerlo con un lenguaje compilado y llamando a la API de Windows.
Si queres te hago el programa en cuestion.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #22 (permalink)  
Antiguo 11/08/2005, 12:48
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Bueno aca podes bajar el binario (2KB):

GSS.exe (GetServiceStatus)

El uso es muy simple gss nombreServicio

Si queres el codigo fuente te lo puedo pasar aunque dudo de que te sea de mucha utilidad.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #23 (permalink)  
Antiguo 12/08/2005, 00:50
 
Fecha de Ingreso: septiembre-2004
Mensajes: 191
Antigüedad: 19 años, 7 meses
Puntos: 1
No creo, mas bien son llamadas a funciones de la API de Windows. No se si desde java se podra llamar a funciones de la api de windows, pero con un programa echo en C seria sencillo

saludos :)
  #24 (permalink)  
Antiguo 12/08/2005, 02:09
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sanmi69
No creo, mas bien son llamadas a funciones de la API de Windows.
Cita:
Iniciado por Eternal_Idol
El programa habria que hacerlo con un lenguaje compilado y llamando a la API de Windows.
Cita:
Iniciado por sanmi69
No se si desde java se podra llamar a funciones de la api de windows
Se puede:
http://bdn.borland.com/article/0,1410,20679,00.html
http://www.rgagnon.com/javadetails/java-0497.html

Pero no tiene sentido alguno.

Cita:
Iniciado por sanmi69
pero con un programa echo en C seria sencillo
Ya esta hecho y en 2KB con C++.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #25 (permalink)  
Antiguo 12/08/2005, 14:46
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
muchisimas gracias Eternal Idol por el ejecutable y por las dos direcciones estas para usar la api de windows, me las voi a estudiar para ver que puedo sacar, por cierto ¿cómo capturo desde java el resultado que me displaya gss?
  #26 (permalink)  
Antiguo 12/08/2005, 16:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por sith
muchisimas gracias Eternal Idol por el ejecutable y por las dos direcciones estas para usar la api de windows, me las voi a estudiar para ver que puedo sacar, por cierto ¿cómo capturo desde java el resultado que me displaya gss?
De nadas y aca mismo tenes como hacerlo:

http://www.rgagnon.com/javadetails/java-0014.html
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #27 (permalink)  
Antiguo 14/08/2005, 10:51
Avatar de sith  
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 333
Antigüedad: 20 años, 9 meses
Puntos: 0
total, ahora mi aplicación es capaz de encender el servidor de mysql si este no esta arrancado y dejarlo activo si lo estaba antes de arrancar la app, muxas gracias de nuevo Eternal Idol, por toda la ayuda
  #28 (permalink)  
Antiguo 14/08/2005, 11:12
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
De nadas, me alegro de que te haya servido
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 04:24.