Software developer yang fokus mengembangkan aplikasi di atas platform .NET dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Continuous Integration & Deployment dan arsitektur Microservice.
Kalo pada artikel sebelumnya kita sudah mengetahui bagaimana cara menganalisa bagian-bagian penting program Y!M untuk mendapatkan informasi yang kita butuhkan guna membuat program mesin penjawab otomatis Y!M ini maka pada artikel kali ini kita akan membahas full semua source code penting untuk membuat aplikasi ini.
Sebenarnya saya sudah lama ingin mengupload source code ini tapi berhubung waktu itu baru support untuk Y!M 8 saya jadi males nguploadnya, tapi setelah melakukan sedikit penyesuaian untuk mendukung Y!M 9 dan 10 akhirnya saya bisa dengan tenang mengupload source code ini .
Seperti pada artikel sebelumnya untuk melanjutkan pembahasan ini kita harus mengetahui urutan windows parent->anak baik untuk membaca pesan yang masuk atau membalasnya.
Berikut adalah urutannya :
Y!M 8
YSearchMenuWndClass -> IMClass -> YHTMLContainer -> Internet Explorer_Server (membaca pesan yang masuk)
ATL:007C07F0 -> YHTMLContainer -> Internet Explorer_Server (membaca pesan yang masuk)
ATL:007C07F0 -> YIMInputWindow (membalas pesan)
Y!M 10
CConvWndBase -> YHTMLContainer -> Internet Explorer_Server (membaca pesan yang masuk)
CConvWndBase -> YIMInputWindow (membalas pesan)
Telihat ada sedikit perbedaan nama class/window untuk Y!M 8, 9 dan 10 dan jika Anda lupa bagaimana cara untuk mendapatkan informasi tersebut silahkan mampir kesini dulu.
Karena aplikasi kita kali ini akan mendukung 3 versi Y!M otomatis kita harus mempunyai sebuah fungsi untuk mengecek versi Y!M yang terinstall di komputer, salah satu cara termudah untuk mendapatkan informasi tersebut adalah via registry windows dan setelah melakukan sedikit investigasi saya mendapatkan lokasi berikut di registry windows :
Fungsinya akan terlihat seperti berikut :
Cara yang kedua dengan memanfaatkan registry berikut :
dan jika kita lihat nilai dari key tersebut lebih kurang seperti berikut :
Loh mana informasi versi Y!Mnya ? Versi Y!Mnya bisa langsung kita dapatkan dari file YahooMessenger.exe jadi dengan cara kedua ini kita membutuhkan referensi Microsoft Scripting Runtime untuk membuat fungsi getYMVersion.
Dari 2 fungsi getYMVersion tersebut terserah Anda mau menggunakan yang mana, yang jelas hasilnya sama. Selanjutnya kita tinggal panggil fungsi tersebut seperti berikut :
Oke sampai disini kita sudah punya fungsi pengecekan versi Y!M langkah berikutnya adalah mendapatkan ymID yang sedang chat dengan kita.
Informasi ymID ini nanti digunakan untuk memudahkan kita memparsing pesan yang masuk.
Satu-satunya cara yang saat ini saya ketahui untuk mendapatkan informasi ymID adalah dengan membaca informasi Title Bar Y!M, tetapi informasi Title Bar ini tidak fix tergantung kondisi berikut :
Versi Y!M
Lawan chat sudah terdaftar Messenger List/belum
berikut cuplikannya
Berdasarkan gambar diatas kita bisa dengan mudah membuat fungsi untuk mendapatkan ymID.
Contoh penggunaan fungsi getYMID
Fungsi berikutnya yang akan kita buat adalah fungsi untuk membaca pesan yang masuk, kondisinya juga sama seperti Title Bar informasinya tidak fix tergantung :
Versi Y!M
Lawan chat sudah terdaftar Messenger List/belum
Kalo penasaran lihat gambar berikut :
Contoh beberapa variasi pesan yang masuk setelah dibaca di program
Terlihat dengan jelas perbedaan antara Y!M 8 dan Y!M 9/10 pada saat pembacaan pesan yang masuk, dimana untuk Y!M 9 dan 10 menambahkan informasi tanggal dan jam pesan masuk.
Berikut adalah fungsi untuk menghandle semua variasi tersebut.
Contoh penggunaan fungsi getYMMessage
Fungsi terakhir adalah fungsi untuk mengirim pesan ke lawat chat
Contoh penggunaan fungsi ymChatSend
Akhirnya selesai juga :) dan potongan kode diatas sudah saya susun menjadi program sederhana dengan kasus “Tes Bahasa Inggris” yang bisa didownload disini.
Beberapa waktu yang lalu saya merilis sebuah library dengan nama WhatsApp NET Client. Library ini merupakan hadiah dari saya untuk teman-teman .NET De...
WhatsApp NET Client adalah library untuk .NET Developer yang digunakan untuk mengembangkan aplikasi WhatsApp klien berbasis desktop. Library ini dikembangkan...
Comments