Monday, November 29, 2010

Script Gratis Membuat Tray Icon Menggunakan VB

Berikut penulis mencoba membahas bagaimana membuat tray icon menggunakan VB. Tray icon merupakan icon yang berada pada kiri bawah desktop anda, tepat disamping jam windows anda. Kadang kita membutuhkan sebuah program yang lebih menarik, yang pada akhirnya membuat pemakai lebih terkesan 'waaah' tapi bukan itu saja, tray icon disini juga berfungsi sebagai shortcut.

Biasanya tray icon digunakan oleh program yang bersifat bekerja terus menerus, misal saja Anti virus maupun program tools lainnya. Langsung saja, berikut langkah-langkah membuat tray icon menggunakan VB :
1. Buat Form baru
2. Masukan 3 buah image dengan gambar berbeda, beri nama imgIcon masing-masing image ubah index menjadi 0,1 dan 2.
3. Masukan 1 buah PictureBox dan beri nama pichook.
4. Masukan 1 buah timer, beri nama timer_tray dan isikan interval=400.
5. Buat Menu editor seperti diagram dibawah ini :
. File (Name:MnuPopUp)
... Tampilkan Aplikasi (Name:MnuPop, index=0)
... - (Name:MnuPop, index=1)
... Tutup Aplikasi (Name:MnuPop, index=2)
Titik 3x diatas sebagai tanda sub menu.
5. Masukan script berikut ini :

Private Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Long
uFlags As Long
ucallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim TrayI As NOTIFYICONDATA
Private Sub pichook_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg
Msg = X / Screen.TwipsPerPixelX
If Msg = WM_LBUTTONDBLCLK Then 'If the user dubbel-clicked on the icon
mnuPop_Click 0
ElseIf Msg = WM_RBUTTONUP Then 'Right click
Me.PopupMenu mnuPopUp
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
TrayI.cbSize = Len(TrayI)
TrayI.hWnd = pichook.hWnd
TrayI.uId = 1&

Shell_NotifyIcon NIM_DELETE, TrayI
End
End Sub

Private Sub Timer_tray_Timer()
Static mPic As Integer
Me.Icon = imgIcon(mPic).Picture
TrayI.hIcon = imgIcon(mPic).Picture
mPic = mPic + 1
If mPic = 3 Then mPic = 0
Shell_NotifyIcon NIM_MODIFY, TrayI
End Sub

Private Sub mnuPop_Click(Index As Integer)
Select Case Index
Case 0 'About
Me.Show
TrayI.cbSize = Len(TrayI)
TrayI.hWnd = pichook.hWnd
TrayI.uId = 1&
Shell_NotifyIcon NIM_DELETE, TrayI
Case 2 'End
Unload Me
End Select
End Sub

4 comments:

script gratis said...

salam kenal boz, isi blognya mantap, tp kurang diupdate infonya, kl update info terbaru kbri sy ya boz :)

script gratis said...

iya boz, isinya di update lagi.. kabari saya juga :-P

luky-computer said...

SAYA NGIKUT BOZ MINTA DIKABARI JUGA

kerja part time said...

makasih infonya...mantap...