Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Apagar la PC desde Java (http://www.forosdelweb.com/f45/apagar-pc-desde-java-322962/)

victork_py 05/08/2005 22:58

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.

iamedu 06/08/2005 11:03

Orale suena bien interesante tu pregunta, encontré esto.
La verdad no lo he probado y espero que te sirva

stock 06/08/2005 18:55

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");
    
}



sith 07/08/2005 04:14

y a partir de ese codigo, ¿alguien sabria como se puede activar un servicio?, digamos el servidor de mysql

Eternal Idol 07/08/2005 09:20

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.

blackwind 07/08/2005 10:54

chido, no sabia que se podian simular los comandos del "CMD" desde java......

sith 08/08/2005 09:10

¿como podria averiguar si dicho proceso está en ejecución?

Eternal Idol 08/08/2005 09:29

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.

sith 09/08/2005 03:31

¿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

Eternal Idol 09/08/2005 03:39

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.

sith 09/08/2005 08:04

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.

Eternal Idol 09/08/2005 08:38

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

sith 10/08/2005 00:03

pues eso si que ya no se como cojerlo, podria decorme como o remitirme a algun lugar donde pueda aprenderlo?

Eternal Idol 10/08/2005 01:12

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)

GreenEyed 10/08/2005 02:59

Y con net status nombreServicio y parseando la respuesta para ver el estado?

Eternal Idol 10/08/2005 03:54

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 ]"

sith 10/08/2005 08:19

entonces como podria parsear lo que devuelve el command para controlar las operaciones desde mi app

Eternal Idol 10/08/2005 08:30

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.


GreenEyed 10/08/2005 13:49

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... :)

sith 11/08/2005 11:39

hola Eternal Idol, el flujo este que mencionas, son clases de java?

OpenSCManager
OpenService
QueryServiceStatus
CloseServiceHandle(Service)
CloseServiceHandle(Manager)

Eternal Idol 11/08/2005 11:45

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.

Eternal Idol 11/08/2005 12:48

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.

sanmi69 12/08/2005 00:50

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 :)

Eternal Idol 12/08/2005 02:09

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

sith 12/08/2005 14:46

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?

Eternal Idol 12/08/2005 16:19

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

sith 14/08/2005 10:51

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

Eternal Idol 14/08/2005 11:12

De nadas, me alegro de que te haya servido :cool:


La zona horaria es GMT -6. Ahora son las 23:08.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.