JNI - Handle Windows Messages

Pessoal,

Alguém sabe como receber (handle) e enviar mensagens do windows com JNI? Uma outra aplicação, desenvolvida em Delhpi, enviará mensagens através de chamadas PostMessage/SendMessage.

Não precisa ser necessariamente usando JNI… pode ser com alguma outra API, desde que seja open source.

Encontrei como fazer em Delphi, mas não em Java:
http://www.cryer.co.uk/brian/delphi/howto_send_custom_window_message.htm

Obrigado.

Filipi Silveira

 Alguém sabe como receber (handle) e enviar mensagens do windows com JNI? Uma outra aplicação, desenvolvida em Delhpi, enviará mensagens através de chamadas PostMessage/SendMessage. 

Mande o programador Delphi para aquele lugar - porque é que ele não pode conversar com o seu programa via sockets?
É muito mais portável e você não corre o risco de “bombar” seu programa Java.

Use o SWT como base. Ele tem código que faz todo esse tratamento de mensagens e o escambau todo.

Boa sorte com isso.

oi, é muito mais facil do que parece,

cria uma dll jni, crie um handle qualquer (combine o nome com a outra aplicacao) e receba as mensagens usando o WndProc. Não dá muito trabalho.

Voce precisa criar um handle, o jeito mais “porco”, porém mais facil e rapido é criar uma janela (não precisa mostrar ela), fica bem facil receber as mensagens.

Documentacao da msdn tem exemplos de sobra disso.

O unico detalhe é o perigo de deadlock, se voce nao for experiente com winapi, não recomendo.

Bom, para não deixar voce tentar e não conseguir: se voce souber pra que serve o L_PARAM do WndProc, vai fundo. Se não souber, arrume outra forma. (sockets, como citaram)

[quote=jmp]oi, é muito mais facil do que parece,

cria uma dll jni, crie um handle qualquer (combine o nome com a outra aplicacao) e receba as mensagens usando o WndProc. Não dá muito trabalho.

Voce precisa criar um handle, o jeito mais “porco”, porém mais facil e rapido é criar uma janela (não precisa mostrar ela), fica bem facil receber as mensagens.

Documentacao da msdn tem exemplos de sobra disso.

O unico detalhe é o perigo de deadlock, se voce nao for experiente com winapi, não recomendo.

Bom, para não deixar voce tentar e não conseguir: se voce souber pra que serve o L_PARAM do WndProc, vai fundo. Se não souber, arrume outra forma. (sockets, como citaram)
[/quote]

Achei este artigo, se o fpsilveira souber mexer com C++ e Windows API, e conseguir fazer uma DLL JNI (a documentação da Sun não explica corretamente como é que se compila uma DLL), então pode se inspirar no artigo.
Mas ainda acho que é para mandar o programador Delphi se mexer, que essa coisa de comunicar dois programas via PostMessage é coisa que estava na moda uns 15 anos atrás, no tempo do Windows 3.0.