komunikasi antarproses

Saya ingin tahu apakah aplikasi saya yang ditulis dalam Java dapat memantau peristiwa (seperti menu klik file, atau menu edit) di aplikasi pihak ketiga lainnya seperti di editor, aplikasi kantor, dll...

Aplikasi saya harus berjalan di latar belakang dan harus dapat menangkap dan mengubah peristiwa aplikasi yang saat ini difokuskan yang mungkin bukan aplikasi java.

Misalnya: jika pengguna mengklik file --> simpan sebagai opsi di microsoft word maka aplikasi saya harus dapat menerima dua peristiwa ini dan juga dapat mengotomatiskan peristiwa ini kapan pun diperlukan..

Tolong bantu

Terima kasih sebelumnya


person PVB    schedule 15.07.2011    source sumber


Jawaban (1)


Saya belum pernah melakukan ini di Java, tapi karena Anda berurusan dengan Win32, setidaknya saya bisa menyarankan bagian aslinya. Yang Anda cari adalah mengaitkan proses lain di sistem Anda. Untuk itu, Anda harus menulis DLL asli. Ini adalah teknik yang umum, dan Anda akan dengan mudah menemukan banyak informasi tentangnya. Titik awal yang baik adalah Menggunakan Hooks dari MSDN.

Setelah Anda menyuntikkan DLL ke semua proses lain di sistem, Anda harus memikirkan cara mengidentifikasi proses yang sebenarnya Anda minati. Cara Anda melakukannya bergantung pada apa yang sebenarnya Anda coba lakukan. Untuk mendapatkan pemahaman yang lebih baik tentang pesan apa yang dikirim pada tindakan yang berbeda, Anda dapat menggunakan Spy++ yang disertakan dengan VS.

Terakhir, Anda harus mengatur beberapa komunikasi antara DLL asli dan program Java Anda. Ini adalah bagian yang saya tidak familier: Anda harus menggunakan JNI. Untungnya, JNI adalah topik yang dibahas dengan baik, dan Anda dapat menemukan banyak saran di situs ini.

person eran    schedule 15.07.2011