Dúvidas

14 respostas
H

Pessoal eu tenho uma aplicação em java que simula umas teclas sendo pressionadas automaticamente. Tem alguma maneira de anexar meu programa em java pra ele “digitar” num bloco de notas? Só falto “anexar” meus comandos somente pra o bloco de notas, porque se eu minimizar o bloco de notas meu programa continua digitando no desktop. Qual a maneira de focar somente no bloco de notas, mesmo minimizando o bloco?

Outra dúvida é que estou exportando meu arquivo.jar, no meu pc roda de boa mas se eu passar pra outra pessoa ele não encontra as imagens, o que posso fazer?

14 Respostas

luistiagos

Isto é meio complicado para se fazer com java pois, isto é uma solução a nível do SO, vc consegue até ver se o processo está aberto ou não, porem para verificar coisas como qual o estado que a janela se encontra(minimizada,maximinizada), vc precisará de algo nativo mesmo, ou se puder faça tudo em C++ que ficará melhor.
No C++ tem umas libs que te auxiliam com este tipo de coisa, tem uma lib da M$ que lida com as janelas do Windows de uma olhada nisto:

H

A primeira dúvida preciso fazer em java =/ + obrigado, vc tem solução para a segunda dúvida?

ViniGodoy

As imagens tem que estar dentro do .jar em algum dos pacotes da sua aplicação.

E você tem que carrega-las usando:

getClass().getResource("/nome/do/seu/pacote/imagem.png")
H

luistiagos:
Isto é meio complicado para se fazer com java pois, isto é uma solução a nível do SO, vc consegue até ver se o processo está aberto ou não, porem para verificar coisas como qual o estado que a janela se encontra(minimizada,maximinizada), vc precisará de algo nativo mesmo, ou se puder faça tudo em C++ que ficará melhor.
No C++ tem umas libs que te auxiliam com este tipo de coisa, tem uma lib da M$ que lida com as janelas do Windows de uma olhada nisto:


eu queria isso, em java HWND notepadWindow = ::FindWindow(“notepad”, 0); dai minha aplicaçao em java irá ficar simulando as teclas, mesmo eu minimizando o notepad, as coisas continuarão sendo digitadas.

H
getClass().getResource(imagens/on.jpg);

getClass().getResource(imagens/on2.jpg);

JImagePanel img1 = new JImagePanel(

loadImage(imagens/on.jpg));

JImagePanel img2 = new JImagePanel(

loadImage(imagens/on2.jpg));

seria assim?

ViniGodoy
  1. Tem uma / na frente de imagens.
getClass().getResource("/imagens/on.jpg");
  1. Certifique-se que letras maiúsculas e minúsculas batem. Embora no Windows isso não faça diferença, para o .jar faz;
  2. Imagens tem que ser um pacote no seu projeto, não uma pasta qualquer. Pacotes vão para dentro do .jar
  3. Quando postar código, use a tag code:
    http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor
ViniGodoy

Como está implementado seu método loadImage?

H
private static BufferedImage loadImage(String file) throws IOException {
		   
		           return ImageIO.read(new File(file));
		   
		       }

Quer que eu poste meu código fonte todo?

ViniGodoy

Mude-o para:

private static BufferedImage loadImage(InputStream stream) throws IOException { return ImageIO.read(stream); }

E aí faça a carga das imagens assim:

JImagePanel img1 = new JImagePanel(loadImage(getClass().getResourceAsStream("/imagens/on.jpg"))); JImagePanel img2 = new JImagePanel(loadImage(getClass().getResourceAsStream("/imagens/on2.jpg")));

H

Ta dando um erro, The constructor JImagePanel(InputStream) is undefined.

ViniGodoy

Faltou chamar o loadImage, já alterei o código ali em cima.

H

O Build fat não está rodando nem no meu pc =/

Eu criei um package chamado imagens e coloquei as imgs lá até ai tudo certo? No Eclipse roda de boa, basta criar um executavel(uso o BuildFatjar) antes ele rodava apenas no meu pc, depois q modifiquei não abre mais, errei alguma coisa. Quer q eu poste a class toda?

H

Nenhuma idéia?

H

Bump

Criado 1 de julho de 2012
Ultima resposta 8 de jul. de 2012
Respostas 14
Participantes 3