Alguém saberia como eu “pegar” o resultado de uma conta chamando a calculadora do Windows em um programa Java?
Você pode tentar pegar o outputStream do processo criado através do Runtime.exec:
Runtime r = Runtime.getRuntime();
Process p = r.exec("calc.exe");
p.getOutputStream();
Correção:
Você pode tentar pegar a saída padrão do processo criado através do Runtime.exec:
Runtime r = Runtime.getRuntime();
Process p = r.exec("calc.exe");
p.getInputStream();
Essa história de in ser saída e out ser entrada sempre me confunde. :shock:
Certo, mas como eu faço ao fechar a calculadora, me retornar o valor da minha operação em um textField por exemplo ?
O outputStream do processo te permite pegar as saídas geradas por esse processo. Nunca testei com a calculadora do Rwindows, mas imagino que funcione da mesma forma que com qualquer outro arquivo .exe. Manipulando esse outputStream você vai obter o valor que deseja e dar a ele o uso que quiser. Se sua dúvida é sobre como manipular o outputStream, dê uma olhada na API. http://java.sun.com/javase/6/docs/api/
Aqui mesmo no fórum você também vai encontrar exemplos de como fazer isso.
Ok, Obrigada =)
Eu tava dando uma olhada aqui e pra fazer o que você precisa (pegar o resultado final exibido pela calculadora), vai ser preciso uma lógica um pouco mais esperta. Porque o Runtime.exec dispara a execução do programa e termina. Além disso eu troquei os objetos: pra pegar a saída padrão do processo use o [color=red]getInputStream[/color].
Você me aconselharia fazer a calculadora em java e chamá-la no sistema em questão, ou usar a calculadora do windows? feito em java, teria como eu tratar essas questões de uma forma mais simples. O que você acha ?
Tuany, será que já não tema alguma coisa PRONTA pra calculadoras em Java? Pergunta meio cretina, a minha… mas talvez seja uma saída…
rsrsr… leoramos é meu parente sou Ramos também. Então, achar eu até acho, mas não é muito específico
Mas qual é a tua necessidade específica? Tenho alguma coisa pronta, de repente posso passar, se lhe servir.
(Com esse nosso sobrenome, o que não falta pra gente é parente :P)
Lembrei, acho que to aqui com um programinha-exercicio caseiro que computava uma expressão matemática com algumas limitações, por exemplo, tu digitava nele algo do tipo: “(3.22 * 4.5) ^ 5”, digitava “Enter” e ele calculava o resultado da expressão. Se houver interesse, eu posso procurar e postar o código por aqui, se bem que devem haver implementações muito melhores de coisas parecidas por aí, como o motor de javascript rhino.
Inté.
Não é tão trivial quanto parece. Para começar, você terá de listar as janelas do Windows, e pegar uma janela que tem o “WINDOW CLASS” (não é uma classe do Java) com nome “SciCalc”. Dentro dessa janela, deve-se localizar uma janela filha com a classe “EDIT”, e usar GetWindowText para obter o texto desse editbox.
Certo, eu preciso de uma calculadora (visual, com botoes, etc. Não aquelas com ShowInputDialog…) para um programa, que, quando eu estiver em um TextField e apertar F4 (por exemplo), de um show() na calculadora para fazer calculos. Quando der esc na calculadora, o valor da conta que eu fiz, vá para o TextFiel.
Você precisa criar uma calculadora em Java mesmo. Não use a calculadora do Windows.
hmmm… ok…