Membuat Project Hantu Notepad Sederhana VB

Hello kawan semua senang bisa bergabung lagi, nah pada kesempatan kali ini kita akan mencoba untuk membuat project sederhana dengan VB, nama projectnya emm,,,  Hantu Notepad :), haha Hantu Notepad, dari namanya terlihat cukup Menyeramkan .., hi hi hi, tapi tenang saja program yang kali ini akan kita buat bersama tidak seseram namanya kok, ^_^

sebenarnya program yang akan kita buat ini cuma konsep awal saja, bisa dikembangin menjadi project yang luar biasa nantinya, tetapi kembali lagi dengan imajinasi kita masing-masing, mau buat project kayak apa, bahanya apa saja, mau campur telor, kecap, garam, kangkung, terus digoreng dah, , Ups kok malah ngomongin makanan yak, Ok ok back to the topic nah  pokoknya semua tergantung dengan imajinasi kita mau buat project kayak apa, yang penting harus bermanfaat yah, jangan buat program untuk menjaili teman, hihi, ok tidak perlu banyak omong lagi sekarang mari kita mulai pembuatan programnya..

Ok, tentunya langkah awal sebagai syarat pembuatan program ini, kita harus punya program Visual Basic, disini kami masih menggunakan Visual Basic jadul yaitu versi 6.0 :D, ok syarat kedua punya PC atau Laptop, haha ya iyalah kalo mau ngoding gak da laptop ato sejenisnya mau nulis dimana coba ?? haha, masak mau nulis di buku gambar, iya kalo buku gambarnya sendiri gak papa, lah kalo buku gambarnya pinjem milik anak arsitek kamar sebelah,, haha bisa bisa runyam masalahnya :D.

Ok selanjutnya buat project baru di VB, kasih ja nama projectnya hantuNotepad, setelah itu dibagian Project Form1 tambahkan beberapa komponen berikut:

yang pertama CommandButton kasih nama ja Command1 untuk captionya tulis dengan “Aktifkan hantu Notepad“, satu lagi tambahkan Timer1 set intervalnya : 100 dan set Enable nya menjadi False, OK setelah selesai hasilnya bisa dilihat seperti gambar dibawah ini.

desain
desain

setelah itu sekarang masuk ke bagian coding nya, buat Module baru kasih nama saja ModHantu ^_^

terus kita buat Fungsi nya, pertama program yang kita buat ini sebenarnya hanya pemanfaatan fungsi API yang sudah di sediakan oleh Windows nah jadi angkah pertama yang harus kita lakukan adalah mendeklarasikan fungsi-fungsi API yang akan kita panggil nantinya serta beberapa konstanta tambahan untuk pelengkap Ok, karena program yang kita buat ini berurusan dengan GUI atau tampilan windows maka Library Windows yang kita butuhkan adalah “user32.dll”, nah didalam file library inilah gudang fungsi / prosedure disediakan windows yang difungsikan untuk mengoptimalkan tampilan program yang akan dibuat oleh para programmer ^_^.

kita membutuhkan 3 Fungsi API, yan pertama tentunya FindWindowA yang berfungsi untuk mendapatkan HandleWindow setiap program yang sedang berjalan, kedua adalah FindWindowExA, sebenernya fungsi API ini tidak jauh beda dengan FindWindowA hanya saja untuk  FindWindowExA berguna untuk mendapatkan handleWindw dari Parrent Window, atau biasa disebut sebagai handle childWindow atau anak Window, nah selanjutnya merupakan Fungsi Api yang luar biasa menurut saya karena dengan fungsi API ini kita bisa membuat keajaiban keajaiban di setiap program yang akan kita buat yaitu SendMessage, seperti namanya Fungsi ini berfungsi untuk mengirim perintah yang selanjutnya akan di eksekusikan oleh kernel di windows, Ok berikut penulisan kode lengkap tentang pendeklarasian Fungsi API,

Private Declare Function FindWindow Lib "User32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "User32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
         ByVal wParam As Long, _
         lParam As String) As Long
Private Declare Function FindWindowEx Lib "User32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpSt1 As String, ByVal lpSt2 As String) As Long
Private Const WM_SETTEXT = &HC
Private Const TVM_SETBKCOLOR = 4381&

selanjutnya kita akan membuat fungsi untuk mendapatkan handle Window dari program Notepad yang terbuka,

Public Function getHwnd() As Long
    getHwnd = FindWindow("Notepad", vbNullString)
End Function

Fungsi diatas berguna untuk mendapatkan HandleWindow dari Notepad, ingat program Notepad mempunyai id ClassName dengan nama “Notepad”, jadi kita harus memberikan value tersebut di bagian parameter lpClassName, ingat sebenarnya Handle Window merupakan nilai yang berfungsi sebagai pengenal atau penamaan setiap aplikasi yang sedang berjalan yang diberi nilai secara unik oleh Windows. Kita bisa melihat dokumentasi Windows tentang parameter apa saja yang ada di API FindWindow di dokumentasi windows http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx

ok selanjutnya kita membuat fungsi untuk merubah judul Notepad tentunya dengan memanfaaatkan API SendMessage ^_^.

Public Function GantiJudul(ByVal Judul As String, ByVal hWnd As Long) As Long
    Dim hasil As Long

    If hWnd > 0 Then
        hasil = SendMessage(hWnd, WM_SETTEXT, 0&, ByVal Judul)
    End If
    GantiJudul = hasil
End Function

untuk mengganti Judul di Notepad kita bisa memanfaatkan fungsi SendMessage, nah sebelumnya kita membutuhkan Handle Window dari program Notepad, serta memberikan kata perintah SendMessage yang kita panggil difungsikan untuk apa, Windows sudah memberikan aturan tersebut, kita dapat melihat secara lengkap di dokumentasi Windows MSDN, bisa di cek di

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx

untuk mengirimkan perintah mengganti caption atau teks kita menggunakan parameter
WM_SETTEXT yang bernilai heksa HC, silahkan di konfersi ke desimal sendiri ya :D.

ok selanjutnya untuk menuliskan text di editor Notepad kita harus mendapatkan handleChildWindow, dengan memanfaatkan fungsi API FindWindowExA, mari kita buat fungsi nya sekalian untuk membuat animasinya.

Public Function hantuNotepad(ByVal teks As String, ByVal hWnd) As Long
    Dim hasil As Long
    Dim cildHwnd As Long
    GantiJudul "Hantu Notepad By. Agus", hWnd
    cildHwnd = FindWindowEx(hWnd, 0, "Edit", vbNullString)
    hasil = SendMessage(cildHwnd, WM_SETTEXT, 0&, ByVal teks)
End Function

nah editor teks di program Notep mempunya childID “Edit”, jadi kita masih menggunakan handle Parrent dari Notepad tadi. kemudian memanfaatkan SendMessage untuk menulis di editor Notepad.

dokumentasi secara lengkap tentang FindWindowExA ada di  http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx

ok sekarang tinggal memanfaatkan fungsi fungsi yang telah kita buat tadi, pada bagian Form1 kita tulis kode berikut.

Dim teks As String
Dim i As Integer
Dim tombol As Boolean

Private Sub Command1_Click()
tombol = Not tombol
    If tombol Then
        Timer1.Enabled = True
        MsgBox "Hantu Notepad sudah aktif silahkan buka program Notepadnya"
        Me.WindowState = vbMinimized
        Command1.Caption = "Matikan Hantu Notepad"
    Else
        Command1.Caption = "Aktifkan Hantu Notepad"
        Timer1.Enabled = False
    End If
End Sub

kode diatas untuk mengaktifkan dan menon aktifkan timer dari project kita, oh ya hampir lupa untuk pendefinisian teks pesan saat program ketika pertama kali dijalankan

Private Sub Form_Load()
    i = 0
    teks = "Hello saya hantu Notepad !" & vbCrLf & "Anda tidak bisa menggunakan program Notepad sekarang..." & vbCrLf & _
    "ha ha ha ha ha ,,,,,,, (^0^)"
    tombol = False
End Sub

kemudian masuk ke bagian animasi teks mengetiknya,

Private Sub Timer1_Timer()
    Dim potong As String
    Dim hWnd As Long

    If i < Len(teks) Then
        i = i + 1
        potong = Left(teks, i)

    Else
        i = 0
    End If

    hWnd = getHwnd()
    If hWnd > 0 Then
        Call hantuNotepad(potong, hWnd)
    Else
        i = 0
    End If
End Sub

nah untuk pembuatan animasi teks mengetik saya coba membuat baris kode seperti dia atas memanfaatkan timer intinya di bari ini

 potong = Left(teks, i)

potongan kode diatas untuk memoteng teks pesan dan menambahkanya 1 per 1 sehingga terlihat seperti mengetik dan akan terus mengulang jika i = ukuran dari teks,

ok selanjutnya kita compile program kita dan coba kita jalankanhantu1

kemudian kita klik tombol tersebut dan buka program Notepad,

hantuNotepaddan door lihat Notepad tersebut berubah menjadi Zombie yang bisa menulis teks sendiri, hihi Lebay..

oh ya hasilnya bisa di download di hantu

ok sampai disini dulu tutorial kali ini semoga bermanfaat bagi kita semua Amiinn,

Salam hangat,

Agus Minanur Rohman

2 thoughts on “Membuat Project Hantu Notepad Sederhana VB”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>