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