Olá amigos, estou querendo usar a win32, fiz testes usando jna, mas, apenas consegui uma messageboxA, outra função não funciona,
como faria pra usar por exemplo quando se tem handles? Tentei com int, long, não gera erro mas também não funciona, o que vocês recomendariam? Jna, jni, ou existe outra saida?
Jna, Jni ou outro?
5 Respostas
Um handle é um int (32 bits). Na Win32 é difícil ter coisas com 64 bits (long); um exemplo disso é quando você precisa chamar QueryPerformanceCounter, que requer um endereço de um valor de 64 bits.
Ok, mas não funcionou, vou tentar por aqui, mas não tem outra solução ( em java, é claro ) melhorzinha?
Não sei o que você quer fazer.
O JNA é recomendado se você quiser usar algumas APIs do Windows, mas outras são muito chatas para o JNA conseguir lidar.
Outras APIs são COM ou .NET e outras soluções devem ser usadas. No caso do COM deve-se usar o Jacob, e no caso do .NET eu recomendaria rodar o seu programa sob a máquina virtual .NET mesmo, usando algo como o IKVM.NET.
Dependendo do tipo de coisa que se quer fazer, eu recomendaria usar C# ou C++ em vez de Java.
Normalmente, quando tenho algo que precisa interfacear com o sistema operacional usando APIs do Windows de forma muito complicada, e pode ser posto em um executável separado (em C++ para ficar com binário menor), faço exatamente isso, e chamo esse executável a partir do Java.
É, pode sera saida, queria detectar e bloquear pendrives, consegui detectar dispositivos removiveis (pen drives, etc) mas outras funções da api não funciona, vou analisar sua dica.
Muito obrigado pela atenção.