Menganalisa dan membuat mesin penjawab otomatis Y!M
Sebelum kita melanjutkan pembahasan ada beberapa istilah yang harus kita ketahui yaitu Parent Window (Window Induk), Child Window (Window Anak) dan bagaimana cara mendapatkan nilai Handle Window (hWnd) atau dengan istilah yang lebih sederhana Process ID.
Setiap aplikasi yang berjalan di Windows umumnya memiliki jendela atau form. Jika ada beberapa jendela/form aplikasi berbeda yang terbuka, maka sistem akan memberikan semacam identitas bagi setiap jendela yang terbuka tersebut, di mana masing-masing jendela/form memiliki identitas atau alamat yang berbeda satu sama lain.
Konsep Child-Parent sangat sederhana, karena pengertian yang diberikan sama persis dengan namanya. Child/anak merupakan sebuah handle window yang berada di dalam handle window lainnya yang biasa disebut parent/induk. Oke kita lihat contoh berikut :
Dengan cara yang sama lakukan terhadap YM dan menghasilkan gambar berikut :
Nah yang jadi pertanyaan bagaimana caranya untuk mendapatkan nilai Handle, Caption dan Class dan yang terpenting disini adalah nilai Class. Ada banyak tool yang bisa digunakan salah satunya adalah Spy++, merupakan tool bawaan visual studio 6.
Oke kita langsung saja menjalankan program Spy++, lihat gambar :
Selanjutnya Anda tinggal drag icon ke aplikasi YM, lihat gambar :
Nah sampe disini analisis sudah selesai dan kita sudah mendapatkan semua informasi yang dibutuhkan, yaitu urutan windows parent<-anak :
- YSearchMenuWndClass <- IMClass <- YHTMLContainer <- Internet Explorer_Server
- YSearchMenuWndClass <- IMClass <- YIMInputWindow
Perlu diketahui bahwal class/window Internet Explorer_Server dan YIMInputWindow bukan class terluar, sehingga kita perlu mengetahui class diatasnya. Jadi untuk membaca pesan yang masuk, urutan class yang harus kita lalui adalah :
YSearchMenuWndClass -> IMClass -> YHTMLContainer -> Internet Explorer_Server
Sedangkan untuk membalas pesan yang masuk, urutan kelas yang harus kita lalui adalah :
YSearchMenuWndClass -> IMClass -> YIMInputWindow
Untuk memanipulasi class/window diatas kita membutuhkan windows handle/process id dari class tersebut, bagi yang sudah terbiasa menggunakan fungsi-fungsi API kemungkinan sudah tau fungsi API apa saja yang kita butuhkan. Jika masih bingung apa itu fungsi API, coba mampir ke sini.
Yaph benar udah taukan fungsi API yang kita gunakan untuk mendapatkan windows handle/process id :
1. FindWindow -> untuk mendapatkan process id induk class (YSearchMenuWndClass)
2. FindWindowEx -> untuk mendapatkan process id sub class (IMClass, YHTMLContainer, Internet Explorer_Server dan YIMInputWindow)
berikut deklarasi lengkapnya :
Private Declare Function FindWindow Lib &quot;user32&quot; Alias &quot;FindWindowA&quot; (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib &quot;user32&quot; Alias &quot;FindWindowExA&quot; (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Oke berikutnya adalah bagian coding lengkap, bagaimana cara mengambil informasi yang ada di window Internet Explorer_Server dan mengirim pesan melalui window YIMInputWindow dan jangan lupa tambahkan references Microsoft HTML Object Library di project Anda.
Private Declare Function FindWindow Lib &quot;user32&quot; Alias &quot;FindWindowA&quot; (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib &quot;user32&quot; Alias &quot;FindWindowExA&quot; (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function SendMessageByString Lib &quot;user32&quot; Alias &quot;SendMessageA&quot; (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Private Declare Function SendMessage Lib &quot;user32&quot; Alias &quot;SendMessageA&quot; (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function ObjectFromLresult Lib &quot;oleacc&quot; (ByVal lResult As Long, riid As UUID, ByVal wParam As Long, ppvObject As Any) As Long Private Declare Function SendMessageTimeout Lib &quot;user32&quot; Alias &quot;SendMessageTimeoutA&quot; (ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, lParam As Any, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long Private Declare Function RegisterWindowMessage Lib &quot;user32&quot; Alias &quot;RegisterWindowMessageA&quot; (ByVal lpString As String) As Long Type UUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Const SMTO_ABORTIFHUNG = &amp;H2 Private Const WM_SETTEXT = &amp;HC Private Const WM_KEYDOWN = &amp;H100 Private Const VK_RETURN = &amp;HD Dim hwndYMMainClass As Long Dim hwndIMClass As Long Private Function IEDOMFromhWnd(ByVal hWnd As Long) As IHTMLDocument Dim IID_IHTMLDocument As UUID Dim doc As IHTMLDocument2 Dim lres As Long 'if = 0 isn't inet window. Dim lMsg As Long Dim hr As Long '---END-DECLARES--------- lMsg = RegisterWindowMessage(&quot;WM_HTML_GETOBJECT&quot;) 'Register Wnd Message Call SendMessageTimeout(hWnd, lMsg, 0, 0, SMTO_ABORTIFHUNG, 1000, lres) 'Get's Object '---CHECKS-FOR-WINDOW---- hr = ObjectFromLresult(lres, IID_IHTMLDocument, 0, IEDOMFromhWnd) End Function Private Function getIEText(ByVal hWnd As Long) As String Dim doc As IHTMLDocument2 'On Error Resume Next If hWnd &lt;&gt; 0 Then Set doc = IEDOMFromhWnd(hWnd) Else getIEText = &quot;-[TEXT CANNOT BE FOUND]-&quot; Exit Function End If '---CHECKS-FOR-HWND------ If doc.body.innerText = vbNullString Then getIEText = &quot;ERROR! [WINDOW DOESN'T CONTAIN HTML]&quot; Exit Function End If '---CHECKS-FOR-HTML-EMBEDDED getIEText = doc.body.innerText End Function Private Sub cmdCetakPesan_Click() Dim hwndYHTMLContainer As Long Dim hwndIEServer As Long Dim pesan As String hwndYMMainClass = FindWindow(&quot;YSearchMenuWndClass&quot;, vbNullString) If hwndYMMainClass &lt;&gt; 0 Then hwndIMClass = FindWindowEx(hwndYMMainClass, 0&amp;, &quot;IMClass&quot;, vbNullString) hwndYHTMLContainer = FindWindowEx(hwndIMClass, 0&amp;, &quot;YHTMLContainer&quot;, vbNullString) hwndIEServer = FindWindowEx(hwndYHTMLContainer, 0&amp;, &quot;Internet Explorer_Server&quot;, vbNullString) pesan = getIEText(hwndIEServer) 'informasi pesan disini masih kurang bagus jadi harus di parsing lagi Debug.Print pesan End If End Sub Private Sub cmdKirimPesan_Click() Dim hwndYIMInputWindow As Long Dim hwndButton As Long hwndYMMainClass = FindWindow(&quot;YSearchMenuWndClass&quot;, vbNullString) hwndIMClass = FindWindowEx(hwndYMMainClass, 0&amp;, &quot;IMClass&quot;, vbNullString) hwndYIMInputWindow = FindWindowEx(hwndIMClass, 0&amp;, &quot;YIMInputWindow&quot;, vbNullString) Call SendMessageByString(hwndYIMInputWindow, WM_SETTEXT, 0&amp;, &quot;Isi pesannya disini...&quot;) Call SendMessage(hwndYIMInputWindow, WM_KEYDOWN, VK_RETURN, 0&amp;) End Sub
Yaph mungkin itu saja penjelasan singkat untuk membuat mesin penjawab otomatis YM! untuk uji coba ini saya menggunakan YM! versi 8.1.0.421 bagi yang akan mencoba di versi 9 sudah saya cek ada sedikit perbedaan nama class/window, yang penting caranya sama seperti diatas tinggal sesuaikan saja.
Bagian terakhir dari artikel ini bisa Anda ikuti disini.
Selamat mencoba 🙂
cool…
Tq
wah, manteb-mantep artikel nya…
aku lg belajar nih BOZ tentang fungsi API,
gimana ya Pak Boz supaya Project bikinan kita dieksekusi dikomputer orang tanpa mereka tahu.. hehehe..
bukan untuk kejahatan lho.. cma buat belajar aja..
bls ke email ku ya Pak Boz… yahya.shadowxxx@gmail.com
didaftarin aja mas programnya di registry berikut :
Jadi programmnya otomatis running klo windowsnya aktif 😀
Om, translate ke VB.Net donk . . . lagi pengen coba nih . . . 🙂
Om emg yg vb 6 udah bisa ? 😀
cukup paham om, cuma, yang jadi masalah, di komputer ini, cuma ada pidgin & saya menggunakan untuk multiple akun chat (gak cuma YM) apa tutor disini bisa digunakan om?? atau, ini bakal jadi Episode 3-nya??
Judulnya : “Manganalisa source code mesin penjawab otomatis Pidgin 2.7.0 ke-atas”
😀
Bakalan berat om membuat artikel “Manganalisa source code mesin penjawab otomatis Pidgin 2.7.0 ke-atas”
Sy udah cek nama classnya sama semua 😀
wah . . . padahal ntar bisa keren ya om jadinya?? . . . qt bisa jawab otomatis semua akun messenger qt, dari YM,MSN, sampe fesbuk?? . . . 🙂
Seharusnya gitu om, bisa bantuin enggak 🙂
nggak terlalu yakin om, tapi akan saya coba . . . 😉
Oke om sy tunggu 😀
jangan ditunggu om, , kayaknya bakal lama. . . dilupain aja, ntar tau2 udah muncul di http://www.duniazhen.tk . . hehe
Oke om klo gitu sy tunggu di duniaOM 😀
terus kalo nih cara di implementasikan tuk baca billing explorer bisa juga kan bang??
seharusnya bisa om, emg tujuannya buat apa nih?
cuma bwt refresing aja bang… 😀
tapi kok gak bisa ya, baca user yang pake tuh billing… ato mungkin krn belum tidur jadi gak bisa2??
xixixixixiix ^_^
Wewww sya enggak punya billing explorer jadi enggak bisa nyoba om 😀
hm…. tak send by email ya bang… minimal dapatin nama user dan durasi kok 😀
gimana??
Oke tak tunggu
sudah bang.. sudah saya krim. sebelumnya terima kasih………
^_^
Ternyata enggak bisa om 😀
Mas,,,,!!! Aku maseh buta bngt neh ma winsock n api..!!
Bisa mas jlasin gk gimana caranya koneksi sebuah aplikasi yang udah kita
rancang ke hardwarenya…!!
Misalnya: Untuk running led….!!
Bisa kasih gambaran gk mas…!!
Makasih banyak ya mas…???
Thanx before
Oo klo cuma untuk ngontrol LED enggak perlu winsock n api, biasanya ngaksesnya via COM, coba referensi ini. Selain itu biasa udah ada cd SDK dari alatnya jadi tinggal pake aja CMIIW.
Selamat mencoba 🙂
wah jadi inget2 dulu pas belajar Win32 API (sampe sekarang ga ngerti2)
jadi pengen balik lagi ke VB6, sayang nih, uda pake Win7 jadi agak ga enak pake VB6..
Syukurlah om sy belom pake win7 😛
saya pake win 7 juga terpaksa 😛
win xp ga bs diinstal (ga ada driver bwt laptop) trus pas pake vista jg bermasalah.
Enggak juga om, yg penting ulet aja googlingnya kemungkinan besar bisa dapat tuh driver untuk xpnya
hahahaha.. tapi sayangnya saya ga terlalu ulet om 😀
uda gitu sekarang adik saya uda terlena dengan Win7, kalo balik ke XP bakal ngamuk2 kyknya.. hehehehehe
Oke om untung sy udah merasa cukup dg winxp (soalnya harus tau diri dg spek laptopnya sendiri :D)
hahahaha.. bisa aja si om..
kadang2 kangen juga ama XP, kadang2 ada ide gila muncul di kepala saya:
pake linux sbg OS utama, XP sbg virtual. hahaha
Ya pelan2x aja om, sy sendiri juga pake ubuntu kok klo lagi main2x dengan java 😀
mantab om.. hehehe
wah sumpah juraganz,
mampir kesini, jadi kangen megang2 vb lg 😛
nice Tutorial ganz,
two thumbs up ^:)^
wahhh ada juga ya juragan yg mampir ke sini, biasanya cuma om2x dari i-bego.
emg skrg pegangannya apa gan ?
Kenapa gak enak? saya pake win7 tetep ber VB ria 😀 tapi memang untuk bisa enjoy kita harus relakan aero theme win 7 untuk dinonaktifkan. soalnya kl gak gitu vbakan berjalan lamabat tertama di tampilan desain formnya. tapi begitu kita tidak gunakan aero theme vb berjalan sebagaimana mustinya jalan di XP kok.
Mmm gitu ya om, tq infonya sy sendiri belom pernah nginstall Win 7 mengingat spek laptop sy yg pas2xan he he he 😀
Mas, ko di visual basic 6 saya tidak ada microsoft spy ++. Apa mungkin gara gara sourcenya jelek? Soalnya saya beli di tukang cd :D. Kalo memang jelek mungkin mas ada source vb6 yang komplit? Kalo ada boleh minta mas 😀
Klo mau yg komplit pake cd visual studio 6 om, klo yg cd vb6 tok memang enggak ada tool spy++nya
Ga ada yang jual Visual studio 6 lagi mas. Apa bisa pakai yang 2000,2005 ato yang 2008 mas?
Ada ah klo d jogja banyak 😀
Wahahah. Ko di bandung ga ada ya? Udah 3 toko di santroni tetep ga ada. Harus hunting lebih ke pelosok ini mah 😀
Ya udah pesan ke sy aja, ganti ongkos kirim + cd blank + keringat waktu burning-in kan panas ha ha ha.
Hmm. Ongkos kirim 2000 + cd blank 6000 + keringat 2000. Jadi semua 10000. Deal? 😀
he he he 😛
Mas kan saya sudah coba download programnya. Dan sudah coba ikuti instruksinya. Tapi waktu ketik BANTUAN. Bacaanya gini terus mas “Keyword Keyword tidak terdaftar. Ketik BANTUAN untuk informasi lebih lanjut tidak terdaftar. Ketik BANTUAN untuk informasi lebih lanjut”. Kenapa ya mas?
buat yg belum punya Spy++
Silahkan Coba Link Berikut:
https://skydrive.live.com/?cid=539d62829af123fb&sc=documents&id=539D62829AF123FB!116
Revisi pertanyaan 🙂
Ooo berati ada perubahan om di Y!Mnya, solusinya gini aja om.
Om masuk ke event tmrAutoReplay_Timer, kemudian cari baris kode
diatasnya ditambahkan perintah untuk mereplace string Bookmark menjadi kosong
Selamat mencoba 🙂
Tetep aja itu bookmark :)). Masih ada mas. Apa gara – gara ym yang di kasih program ke closed secara automatis? Soalnya waktu saya coba hilangkan
Call closeYM(hwndYMMainClass)
yang terdapat diCase Else
msg = "Keyword " & msg & " tidak terdaftar. Ketik BANTUAN untuk informasi lebih lanjut" & vbCrLf & vbCrLf
End Select
Call ymChatSend(hwndYMMainClass, msg)
'Call closeYM(hwndYMMainClass) Program bisa berjalan mas. Tapi ko server ama client malah saling replay :)). Apa ymnya harus punya settingan sendiri mas?
coba diatas baris kode
divalidasi juga string bookmarknya
Selamat mencoba 🙂
Makasih mas. Sudah bisa. Tapi ada revisi sedikit.Tentang kodingnya
msg = Replace(msg, "[B]", "[B]")
Kalo bales ke ymnya tetap berupa coding mas. Tidak berubah jadi merah :D.Mungkin bisa di ganti jadi begini
msg = Replace(msg, "[B]", "B/font>")
Makasih mas codingnya :*. Tapi btw, kalau hasil ujiannya disimpan dimana ya mas? Kalau di database yang di simpan cuma timeoutnya. Tidak ada hasil dari ujian yang sudah di kerjakan.Yahhh itulah tugas om komo utk menyempurnakan program diatas 😀
Oalah ko jadi gitu. Maksud saya coding msg = Replace(msg, “[B]”, “[B]“) Jadi begini msg = Replace(msg, “[B]”, “B“) Satu lagi deh nanyanya. Kalo mau nyisipkan coding tapi tampilanya gimana ya mas? Maap saya masih cupu :).
AAAAAAAAAAAAAAAAAAAAA. Gimana ini. Malah jadi ngerusak blog abang. Maap ya bang. Niatnya mau ngebantu :(.
Iya kok jadi ancur2xan gini ya? 😀
Malah merusak pemandangan ha ha ha 😀
Ok mas. Saya coba. Sekali lagi makasih ya. Dan maap blognya jadi berantakan. <<<< Sangat pemula 😦
Oke om, ada masanya “ketika kita masih muda dan bodoh”
Halahhhhh 😀
Hohhohoh. Sekali lagi maap ya mas 🙂 dan makasih sourcenya. Sangat membantu :*
Oke om sama2x 🙂
Mas mau nanya. Kalo cara ngedapetin tiap class di ym tinggal drag aja spy++ ke ymnya kan mas? Tapi ko berkali – kali nyoba cari class ymHtmlContainer ga dapet – dapet ya mas? Saya pake ym 10.
Ya om memang agak susah untuk mendapatkan class YHTMLContainer di Y!M versi 10, tp jangan kuatir ada cara lain 🙂
Lihat GAMBAR
Selamat mencoba 🙂
Terima kasih om :-*
Sama2x om 😛
Boleh nanya lagi ga om? Hehe. Maap banyak tanya. Kalau masalah keterhubungan antar tabel di databasenya om. Kenapa cuma table history dan sesi yang punya relasi. Sedangkan bank_soal dan ym_id cuma berdiri sendiri? Apa ym_id dan bank_soal bisa juga diadakan relasi ke tabel history misalnya. Maap ya om banyak tanya 😦
Fokus artikel diatas bukan masalah relasi tabel om, jadi harap maklum 😀
Intinya sy buat rancangan tabelnya sesimple mungkin utk mengakomodasi contoh mesin penjawab otomatis YM! nya.
Tapi misalnya saya buat relasi sendiri seperti contoh di atas apa berpengaruh pada programnya om?
Seharusnya enggak, asal data yg masuk valid.
Maksudnya data valid apa om? Maap :(. Bodo banget sih komo 😦
Emg udah belajar perancangan database belum om ?
Maksud sy, valid disini ada hubungannya dengan Primary Key dan Foreign Key
Udah sih om. Tapi kebetulan database saya c :(. Bisa dijelaskan dengan lebih sederhana ga om? Saya niatnya mau bikin relasi seperti komentar #64. Apa bisa om? Dan kalau bisa bagaimana caranya? Maap ya om. Blank banget ama database mah 😦
Dapat C ya om ? ya udah belajar lagi disini.
Ya tinggal terapkan aja om relasinya
Ok om. Makasih :*. Maap banyak tanya. Insya allah saya akan coba sendiri :D. Tapi kalo mentok boleh kesini lagi kan om?
Oke om
Om, kalo waktu kita ketik mulai mau ada sejenis password digimanain ya om? Jadi waktu ketik mulai si program minta password. Misal saya udah bikin tabel dengan nama password dan di dalamnya terdapat field key. Terus di dalam field key mempunyai isi field berupa komo.
Trus kita tau passwordnya dari mana ?
Iya om. Jadi passwordnya kita bikin sendiri di database. Terus waktu kita ketik mulai dia minta pasword dulu. Kalo benar kita mulai. Kalo ennga tidak akan mulai. Seperti kasus di atas kan saya bikin tabel password. Terus ada kolom key. Terus di kolom key ada field komo. Jadi paswordnya itu komo om. Jadi misal kita ketik mulai komo baru jalan itu program. Misalnya mulai kokom itu program ga akan jalan. Di case “MULAI” nya saya harus tambahin apa om? Biar nanti seperti sekenario di atas.
setelah case “MULAI” di log dulu usernya udah menginputkan password atw belum, klo belum langsung send balik untuk menanyakan passwordnya
Terus untuk akses ke table password itu gimana om?
Ya om tinggal melakukan query “SELECT” ke table password, sama seperti yg om biasa lakukan untuk menampilkan data.
Pertanyaan balik, om udah pernah buat APLIKASI DATABASENYA kan ?
Hmm. Belum. Hehe. Ya udah. Biar saya mencoba mengerjakan sebisa saya saja om. Makasih telah ngasih banyak saran dan maap banyak merepotkan 😀
Oke om, saran sy walaupun lagi ngejar target TA, ya tetap dasar2x programmingnya di pelajari terutama basic untuk akses databasenya
wah sangat senang sekali saya menemukan blog ini….
maaf ada sedikit pertanyaan nih….
apakah source yang bapak kembangkan nantinya juga akan berpengaruh pada versi yahoo messenger yg dikeluarkan oleh yahoo! ?
mengingat yahoo sendiri termasuk sering mengeluarkan versi yg lebih baru…
terimakasih
Klo sy bandingkan mulai dari versi 8 s.d 10 memang ada perbedaan tetapi hanya pd nama class dialognya jadi inti dari programnya sendiri tidak berubah, mungkin sebagai referensi tambahan om bisa cek link ini.
maksih banyak om atas jawabanhhya…
Sama2x om
btw YM sy Di Add dong OM
Oke om 🙂
Pak dosen, murid yg gak pernag bayar spp ini nongol lagi. sy lagi coba untuk memberi value ke textbox diaplikasi lain, saya dah coba dibeberapa aplikasi dengan menggunakan spy++ bisa di intercept, tapi ni ada satu aplikasi tapi nama classnya sama gimana cara ngakalinya pa dosen.. tuluuuunngggggg mohon pencerahanya…. matur tankyu pak dosen….
Emg aplikasi apaan om ?
aplikasi dealer motor pak dosen. tapi udah ketemu koq caranya, jadi kalo ketemu control/window yang class dan captionnya sama di loop aja hanlde windownya terus secara urutan kita bisa isi value dengan yang diinginkan. btw maturnuwun atensinya…..
Wah kren om, jadi penasaran pengen liat kodenya 😀
yo wis kita berbagi aja….
dim HwndUtama as long
dim HwndAnak as long
HwndUtama=findwindow(NamaClassFormUtama, CaptionFormUtama)
hwndAnak=0
‘menampilkan nilai handle window dengan class dan caption yang sama di ListBox
Do
HwndAnak=findwindowex(HwndUtama, HwndAnak,NamaClassControlAnak, CaptionControlAnak)
if HwndAnak=0 exit Do
list1.additem(HwndAnak)
loop
‘memberi nilai pada tiap control/window secara berurutan
if list1.ListCount > 0 then
list1.listIndex=0
SendMessageByString(list1.text, WM_SETTEXT, 0&, NilaiIsianA)
list1.listIndex=1
SendMessageByString(list1.text, WM_SETTEXT, 0&, NilaiIsianB)
list1.listIndex=2
SendMessageByString(list1.text, WM_SETTEXT, 0&, NilaiIsianC)
‘dan seterusnya
end if
moga bermanfaat….
btw makin seru diskusi di blognya pak dosen. LANJUTKAN!
Tq om sumbangan kodenya.
Iya om lumayan rame, berkat pengunjung2x seperti om 🙂
Wah rame ni blognya… 🙂
Mohon wangsit pencerahan. Apa ada untuk membaca textbox YM pake file dll, atau api. jadi ga harus buka YM client-nya. bisa langsung login ke server gitu mas. Matur Nuwun
Coba kesini om.
Hehehe bingund… Implementasinya gmn yak kalo di vb 🙂
Sama om sy juga blm coba 😀
Sekilas liat dokumentasinya bisa diimplementasikan menggunakan C# atau VB .NET
kang admin, mohon pencerahanya dong
kalo pake API biar bisa baca text yang ada di aplikasi lagi gimana ya? kalo yang disitu kan dari Objct HTML tuh ya. aku utak atik ga ketemu2, mau nyari juga ga tau mau nyari kemana. Kalo ada rujukan referensi nya juga.
eh.. iya. kalo itu buat baca di object yang dari aplikasi java gitu bisa ga ya..
matur sembah nuwon sak derenge..
Coba di test dulu contoh sederhana berikut (membaca text notepad dari aplikasi vb)
Lihat gambar
alhamdulilah mantap ini kang. tak coba udah bisa. Matur nuwon sanget.
tapi kalo tau ini bisa diterapin buat baca di jendela aplikasi java ga kang? soalnya di komputer aku ga ada java nya.
Matur nuwon lagi.
eh iya.. maaf kalo lancang. kalo boleh saya minta ID YM nya kang.
Matur nuwon lagi.
Loh kok malah sy yg harus menginstall java dan mencobanya, bukannya om yg butuh.
Kan udah sy kasih samplenya, bukannya tinggal dipelajari dan dikembangkan sesuai kebutuhan.
aduh.. maaf banget. ane kira di komputer akang udah ada aplikasi java nya. kan kang admin juga develop pake java juga. hehe
maaf tanya lagi ya. apa ada apilikasi lain lagi selai spy++ buat baca kelas dari jendela gitu. soalnya itu tak spy++ tak pake buat baca jendela option di firefox ga kebaca. yang kebaca cuma kelas di jendela utama. padahal disitu kan ada banyak text box dll.
terimakasih untuk infonya
sekali lagi maaf banget ya kang. soal instal aplikasi java nya 🙂 kang admin ga usah instal aplikasi java nya ya. biar ane yang nyoba nyari. hehe.
Oke deh gpp, sy skrg fokus di C# kok klo Java itu masa lalu 😀
ow. sekarang pindah ke C# toh. kenapa. ga java? ga .net ? maaf [OOT] nih. saya mau minta saran kalo untuk aplikasi dekstop mending pindah ke apa ya?
trims
C# itu ya salah satu pemrograman yg ada di .NET om.
Alasannya ya sederhana, karna di kantor sy pake .NET 😀
ow gtu. gtu aja ya. 😀 oke deh.
trims ya.
Reblogged this on SuperProg06's Blog and commented:
salam kenal
Salam kenal juga om 🙂
saya sedang mengembangkan aplikasi menggunakan YahooMessenger, tutorial ini sangat membantu, terima kasih atas tutorial yang diberikan. 🙂
saya ada masalah dalam pembuatan aplikasi untuk mengirimkan pesan ke suatu akun, saya menggunakan Text box yang ada ditampilan YM10, saya mendapatkan class Text box tersebut menggunakan Spy++ yang menghasilkan class parent dan child sbg berikut : YahooBuddyMain > CMerlinWndBase > ATL:008AC990
namun setelah di implementasikan ke VB6, saya tidak mendapatkan hasil seperti yang saya inginkan, source codnya seperti ini :
Dim hwndYahooBuddyMain As Long
Dim hwndMerlinWndBase As Long
Dim hwndID As Long
Dim ymIDToSend As String
ymIDToSend = “akun_YM”
‘ Send message Window = YahooBuddyMain > CMerlinWndBase > ATL:008AC990
hwndYahooBuddyMain = FindWindow(“YahooBuddyMain”, vbNullString)
hwndMerlinWndBase = FindWindowEx(hwndYahooBuddyMain, 0&, “CMerlinWndBase”, vbNullString)
hwndID = FindWindowEx(hwndMerlinWndBase, 0&, “ATL:008AC990”, vbNullString)
Call SendMessageByString(hwndID, WM_SETTEXT, 0&, ymIDToSend)
Call SendMessage(hwndID, WM_KEYDOWN, VK_RETURN, 0&)
kira-kira apa yang salah, terima kasih sebelumnya
Maksudnya ngirim Instant Message ya om ? Klo iya coba kode berikut :
terima kasih om, 🙂
namun banyak function yang belum didefinisikan, seperti “FindWindow’, dan ‘WM_COMMAND’..
untuk FindWindow sudah saya definisikan, namun ‘WM_COMMAND’ saya bingung didefinisikan dengan apa. thanks 🙂
udah bisa om, makasih banyak 🙂
Oke sama-sama om 🙂
kalau mesin penjawab otomatis BBM gmn ya? tolong buat detailnya kyk keterangan di atas.
Iya nunggu BBMnya support untuk PC dulu 😀