Cómo eliminar estado en la barra de estado?

Iniciado por WHK, 18 Junio 2012, 20:34 PM

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

WHK

Hola, estoy intentando utilizar algunas librerias desde algunas aplicaciones creadas en java.

La situación es esta... tengo aproximadamente 50 aplicaciones en java para consola sin utilizar ventanas y cáda una de ellas utiliza por lo menos una función que hace que se vea en la barra de estado.

Por ejemplo:
Código (java) [Seleccionar]
public static int screenCap(){
try {
BufferedImage image;
Robot robot = new Robot();
Rectangle screenRectangle = new Rectangle(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(System.getProperty("java.io.tmpdir") + "/test.png"));
return 1;
} catch (Exception ex) {
return 0;
}
}


Al ejecutar mi aplicación se muestra la tacita en la barra de estado acusando la ejecución de la aplicación, el problema es que una sola aplicación llama a casi 50 otras aplicaciones con estas funciones y el problema es que se ven 50 items de estados activas.
Lo mismo me pasa en el mac pero solo se ev el ícono redondo de la tacita de java activo.

Como puedo hacer para que esto desaparezca y se ejecute sin la necesidad de acusar en la barra de estado?.

Gracias.

Nortis

Por lo que he entendido tienes una función para  mostrar una barra de estado y lo que deseas es que al ejecutarla desde otra aplicación sin ejecutar esa función. Si es eso lo único que se me ocurre ahora es implementar dos funciones main, uno sin parámetro de entrada y otro con un boolean. El main que recibe un boolean llama a main() y ademas guarda en una variable local el valor (por defecto lo es true). Con esta variable compruebas si tienes que crear la barra de estado.

No se si te refieres a eso, espero haberte ayudado.

WHK

Hola, no, no es eso xD lo unico que quiero es que la aplicación no muestre la barra independiente si la ejecuto solo o si lo hago desde otra aplicación.

Normalmente todo se ejecuta bién pero al momento de llegar a la función robot.createScreenCapture se muestra la aplicación en la barra de estado y no quiero eso, quiero que se siga ejecutando normalmente sin mostrar nada.

[Case]


Nortis


WHK

#5
Acá está el código completo:
Código (java) [Seleccionar]
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class test{

public static int screenCap(){
try {
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(java.awt.Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", new File(System.getProperty("java.io.tmpdir") + "/test.png"));
return 1;
} catch (Exception ex) {
return 0;
}
}

public static void main(String[] args){
screenCap();
while(true){
System.out.println("Buenas");
try{ Thread.currentThread().sleep(1000); }catch(InterruptedException e){ }
}

}

}


La ejecutas verás que aparece el icono de java en la barra de estado mientras que lo llamas desde la consola de comandos. Si comentas la llamada screenCap(); verás que no aparece el ícono en la barra de estado.

Nortis

He creado una clase hilo que extiende de Thread y desde ahí he llamado a la clase test. Desde una tercera clase he creado tres objetos hilo. Lo he probado en Arch Linux y no me ha salido ningún icono en la barra de estado. También lo he probado el mismo en OSX Lion y solo me aparecía el principal que es el que llamo. No se si esto te sirve,

WHK

#7
Hola, me sirve a medias porque justamente estaba intentando crear un troyano en java para mac y ese ícono es mi delator principal xD, pensaba hecharlo a correr con un corn y java test &> /dev/null , de esa forma no necesitaré permisos de administración

Nortis

Yo lo probé en la maquina virtual que tengo del lion y no me hizo la captura de pantalla. Mire en /tmp y no me aparecerio, pero en Linux si que lo hizo.

WHK

Con que lo compilaste? yo lo hize desde la consola con javac test.java y luego lo ejecuté directamente con java test

Te aparece algún error al compilar? Lo hize en Mac OS X Lion 10.7.4