Sunday, May 22, 2011

Menambah Module Yang Disertai Kode Melalui VB6 Add-Ins

Menjelaskan mengenai cara menambah module melalui Visual Basic 6 Add-Ins - Sebelumnya saya telah memposting mengenai cara menambah Form, Menu, CommandButton, menambah referensi komponen OCX dan DLL melalui pemrograman Add-Ins, maka untuk melengkapi mengenai cara membuat robot software atau generator code tentulah harus dapat menambahkan Module, Class, UserControl, Resource, dsb.

Untuk menjalankan kode di bawah, ikuti langkah-langkah berikut:
  1. Buat project Add-Ins baru dengan cara Klik File, klik New Project, klik Addin
  2. Gantilah seluruh kode yang terdapat pada frmAddin dengan kode di bawah
  3. Lakukan compile dengan cara klik File, klik Make MyAddin.dll
  4. Simpan project, dan tutuplah aplikasi Visual Basic 6

Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
AddModule "moDatabase", ConnectionCode
End Sub

Public Function
AddModule(ModulName As String, Optional strCode As String) As Boolean

Dim
newModule As VBComponent

On Error GoTo
ErrHandler

Set
newModule = VBInstance.ActiveVBProject.VBComponents.Add(vbext_ct_StdModule)
With newModule
.Name = ModulName
.CodeModule.AddFromString strCode
End With
Exit Function

ErrHandler:

MsgBox Err.Description

End Function

Private Function
ConnectionCode() As String
Dim
sMsg As String
sMsg = sMsg & "" & vbCrLf
sMsg = sMsg & "Public conn As ADODB.Connection" & vbCrLf
sMsg = sMsg & "" & vbCrLf
sMsg = sMsg & "Public Function OpenDatabase(Filename As String) As Boolean" & vbCrLf
sMsg = sMsg & "" & vbCrLf
sMsg = sMsg & " Dim c As String" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & " On Error GoTo ErrHandler" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & " c = " & Chr(34) & "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Chr(34) & " & Filename" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & " Set conn = New ADODB.Connection" & vbCrLf
sMsg = sMsg & " conn.ConnectionString = c" & vbCrLf
sMsg = sMsg & " conn.Open" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & " OpenDatabase = True" & vbCrLf
sMsg = sMsg & " Exit Function" & vbCrLf
sMsg = sMsg & "" & vbCrLf
sMsg = sMsg & "ErrHandler:" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & " OpenDatabase = False" & vbCrLf
sMsg = sMsg & " " & vbCrLf
sMsg = sMsg & "End Function" & vbCrLf
ConnectionCode = sMsg
End Function

Untuk mengakses MyAddin.dll, buka project baru klik Add-in Addin Manager.... klik My Add-in, selanjutnya tekanlah tombol OK dan lihatlah hasilnya.
READ MORE - Menambah Module Yang Disertai Kode Melalui VB6 Add-Ins

Friday, April 22, 2011

Module Untuk Memperoleh Nama File, Extension, Path - VB6

Karena bingung memberi judul, akhirnya judulnya seperti di atas. Module ini digunakan untuk memperoleh (return/get) nama dari PathName lengkap, apakah yang akan diambil extensionnya saja, filenamenya saja, path tanpa filename. Adapun kodenya sebagai berikut:
Option Explicit 

Public Enum
eFilename
ExtentionOnly = 0 'contoh .exe, .zip, dll
FileNameOnly = 1 'update.exe, notify.exe, file.zip
PathNameOnly = 2 'c:\program files\anti virus
WithOutExtention = 3 'update, notify (tanpa .exe)
End Enum

Public Function
GetName(Filename As String, str As eFilename) As String
Dim
vArray As Variant, sDelimiter As String, e As String, v() As String
If
Filename = "" Then Exit Function
Select Case
str
Case ExtentionOnly
sDelimiter = "."
Case FileNameOnly
sDelimiter = "\"
Case PathNameOnly
vArray = Split(Filename, "\")
GetName = Mid(Filename, 1, Len(Filename) - Len(vArray(UBound(vArray))) - 1)
Exit Function
Case
WithOutExtention
vArray = Split(Filename, "\")
e = vArray(UBound(vArray))
v() = Split(e, ".")
GetName = v(0)
Exit Function
End Select
vArray = Split(Filename, sDelimiter)
GetName = vArray(UBound(vArray))
End Function
Contoh penggunaan kode di atas:
Private Sub Command1_Click() 
msgbox GetName ("C:\Program Files\UI\Update.exe",FileNameOnly) 'jika ingin memperoleh filenamenya saja, dll.
End Sub
READ MORE - Module Untuk Memperoleh Nama File, Extension, Path - VB6

Mematikan (Disable) Check Spelling TextArea

Setelah selesai membahas mengenai cara membuat TextArea sederhana yang hanya melibatkan beberapa attribute/property yakni rows, cols, align, dan name, sekarang kita akan membahas mengenai cara mematikan atau men-disable-kan fasilitas Check Spelling. Apa yang dimaksud dengan Fasilitas Check Spelling pada TextArea itu?
Mengapa pada kondisi tertentu check spelling ini harus kita disable-kan? Perlu diketahui, Check Spelling adalah fasilitas yang membantu kita mengecek ejaan sehingga terhindar dari kesalahan penulisan. Tetapi bagaimana jika bahasa yang sedang kita tulis tidak didukung oleh fasilitas ini (misalnya menggunakan bahasa daerah)? yang terjadi adalah sebagian atau banyak dari tulisan akan digarisbawahi dengan warna merah. Nah, pada kondisi ini terdapat dua pilihan, menggunakan Check Spelling atau tidak. Manakah yang Anda pilih? hmm.. sepertinya Anda memilih untuk mematikan/men-disable fasilitas Check Spelling ini.

Untuk mendisable check spelling ini, kita hanya perlu menambahkan satu property/attribute yaitu spellchek=false. Property spellcheck ini memiliki data type Boolean, jadi kita hanya dapat mengisi dua nilai saja, antara TRUE dan FALSE.

Catatan: Fasilitas Check Spelling ini hanya ada pada browser tertentu.
READ MORE - Mematikan (Disable) Check Spelling TextArea

Thursday, April 14, 2011

Kamus Inggris - Menambahkan Database - Bagian ke-7

Kamus Inggris - Menambahkan Database merupakan kelanjutan dari bagian ke-6.
Database kamus ini, kosakatanya berjumlah 23623 (dua puluh tiga ribu lebih). dalam format text sehingga bisa dengan mudah diakses dan ditambah kosakatanya. Database kamus ini diambil dari gKamus (Kamus Bahasa Inggris Indonesia Open Source). Beberapa modul/kode pada
bagian ke-7 ini diambil dari Putra VB (disitus miliknya Anda dapat belajar VB6 dan VB.Net). Untuk kedua Author situs tersebut saya ucapkan terima kasih. Selanjutnya ...

Pada bagian ke-8 kita akan menambahkan databasenya, dengan demikian project ini sudah bisa kita gunakan, dengan fitur bug disana-sini, sederhana, dan tampilan yang kurang enak dipandang (tentu saja, setidaknya untuk sementara), bagaimana mengenai kecepatan pencariannya? saya kira tidak perlu diragukan.

Tujuan pada bagian ke-
Menambahkan database, sehingga kamus ini sudah bisa kita gunakan.

Langkah-langkah
  • Download terlebih dahulu databasenya [Download Database]
  • Satukan file database (en-id.txt) ke dalam folder database
  • Buatlah module baru dan berinama modData
  • Tambahkan 1 TextBox (Text3) dan 1 ListBox (List2)
  • Tambahkan beberapa kode di bawah ini:
Kode-kode
'tambahkan kode di bawah ke dalam form frmMain 
Private Sub Form_Load()
BukaData App.Path & "\database\en-id.txt", List2
End Sub

Private Sub
List1_Click()
Text3.Text = List1.Text
End Sub

Private Sub
List2_Click()
If List2.ListIndex <> -1 Then
Text2.Text = Replace(DataEn(List2.ListIndex), vbTab, " = ")
End If
End Sub

Private Sub
Text1_DblClick()
Text3.Text = Trim(Text1.SelText)
End Sub

Private Sub
Text3_Change()
Dim i As Integer
If
Text3.Text = "" Then
List2.ListIndex = -1
Text2.Text = ""
Exit Sub
End If
i =
List2.ListIndex
If List2.Text = "" Then List2.ListIndex = i
Dim
retValue As Long
retValue = SendMessage(List2.hWnd, LB_FINDSTRING, -1, ByVal Text3.Text)
If retValue > -1 Then
List2.TopIndex = retValue
Else
List2.TopIndex = i
End If
List2.ListIndex = List2.TopIndex
End Sub

Kode di bawah ini masukan ke dalam module modData
Option Explicit 

Public Declare Function
SendMessage Lib "user32" Alias "SendMessageA" ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const
LB_ADDSTRING = &H180
Public Const LB_FINDSTRING = &H18F
Public Const LB_FINDSTRINGEXACT = &H1A2

Public
DataEn() As String
Public
LokasiData As String

Sub
BukaData(FileName As String, lst As ListBox)
Dim Temp As String
Dim i As Long
lst.Parent.Visible = False
Open
FileName For Binary As #1
Temp = Space$(LOF(1))
Get #1, , Temp
Close #1

Temp = Replace(Temp, vbCrLf & "" & vbCrLf, vbCrLf)
DataEn = Split(Temp, vbCrLf)

lst.Clear

For i =
0 To UBound(DataEn) - 1
SendMessage lst.hWnd, LB_ADDSTRING, 0, ByVal CStr(Split(DataEn(i), vbTab)(0))
Next
lst.ListIndex = 0
lst.Parent.Visible = True
End Sub

Uji Coba
  • Compile terlebih dahulu projectnya
  • Jalankan melalui Windows Explorer
  • Ketikan kosakata inggris pada TextBox pencarian (Text3), Anda lihat sekarang kamus ini dapat mencari kosakata dengan sangat cepatnya
Catatan
Pada bagian download terdapat file .exe, sebagai perbandingan saja.
Sampai disini apakah ada pertanyaan? sepertinya tidak ada, maka kita lanjutkan pada bagian ke-8
READ MORE - Kamus Inggris - Menambahkan Database - Bagian ke-7

Kamus Inggris - Splash Screen, Apakah Kegunaannya - Bagian 8

Kamus Inggris - Splash Screen, Apakah Kegunaannya merupakan kelanjutan dari bagian ke-7.
Dengan ditambahkannya database, maka pada saat dijalankan aplikasi akan memiliki jeda (Time Lag). Hal ini disebabkan aplikasi tersebut harus me-load terlebih dahulu kosakatanya, disinilah kita akan membutuhkan apa yang biasa disebut dalam pemrograman dengan Splash Screen/Form. Splash screen berguna untuk memberitahukan user bahwa aplikasi yang kita buat baik-baik saja, bukan hang. Selain itu splash screen bisa dianggap sebagai ciri khas dari aplikasi yang Anda buat, mengenai hal ini kreatifitas Anda sangat diperlukan.

Tujuan pada Bagian ke-8
Cara menampilkan splash screen dengan benar

Langkah-langkah
  • Klik menu project >> Add Form
  • Pilih Splash Screen, selanjutnya klik OK
  • Tambahkan (ganti) kode yang terdapat dalam modMain, tepat kode yang berada pada method Sub Main()
Kode-kode
Pada bagian modMain seperti yang telah disebutkan pada bagian ke-4 gantilah kode di bawah ini:
Sub Main()   
InitCommonControls
frmMain.Show
End Sub
sehingga menjadi:
Sub Main()   
InitCommonControls 'XP Style inisialisasi
frmSplash.Show 'tampilkan splash form terlebih dahulu
frmSplash.Refresh 'refresh agar tampilannya benar
Load frmMain 'load seluruh kode dalam tampilan utama
frmMain.Show 'tampilkan form utama
Unload frmSplash 'tutup splash form
End Sub
Uji Coba
  • Compile terlebih dahulu
  • Jalankan melalui Windows Explorer
  • Sekarang aplikasi akan menampilkan splash screen terlebih dahulu
READ MORE - Kamus Inggris - Splash Screen, Apakah Kegunaannya - Bagian 8

Kamus Inggris - Advance Form Center - Bagian ke-9

Kamus Inggris - Advance Form Center merupakan kelanjutan dari bagian ke-8.
Pada bagian ke-9 ini kita akan menambahkan modul form center dan module registry. Module form center berguna untuk menyimpan form di tengah layar, dalam hal ini kita akan menggunakan advance form center. Diberi kata advance, karena ia memiliki beberapa keistimewaan, yaitu:
  • Menampilkan form di tengah layar hanya untuk pertama kali saja,
  • Pada kali kedua ditampilkan dan seterusnya, posisi form akan diambil dari nilai yang terdapat pada registry
  • Tidak terpengaruh oleh tingginya taskbar, sehingga ia akan berada benar-benar di tengah layar.
Module registry selain digunakan untuk module form center, ia akan digunakan juga dalam setting-setting, opsi, dan konfigurasi aplikasi ini.

Tujuan pada Bagian ke-9
  • Menambahkan modul form center agar aplikasi ditampilkan tepat di tengah layar.
  • Menambahkan modul registry untuk keperluan setting/konfigurasi, dan opsi.
Langkah-langkah
  • Buatlah modul baru dan beri nama modForm, copy dan pastekan kode ini.
  • Buatlah modul baru dan beri nama modRegistry, copy dan pastekan kode ini.
Kode-kode
Gantilah kode di bawah ini (terdapat pada frmMain):
Private Sub Form_Load()  
BukaData App.Path & "\database\en-id.txt", List2
End Sub
Sehingga menjadi:
Private Sub Form_Load() 
GetPositionsFromRegistry Me 'ini untuk posisi form yang diambil dari registry
BukaData App.Path & "\database\en-id.txt", List2
End Sub
Tambahkan kode di bawah ini pada frmMain:
Private Sub Form_Unload(Cancel As Integer) 
SavePositionsInRegistry Me ' menyimpan posisi ke dalam registry
End Sub
Uji Coba
  • Compile terlebih dahulul projectnya, Jalankan melalui Windows Explorer. Pada saat pertama kali dijalankan aplikasi akan berada tepat di tengah layar. Selanjutnya geser (drag) aplikasi kamus dan tutuplah, buka kembali, maka sekarang ia akan tampil seperti pada posisi terakhir kali ia ditutup.
Sampai disini mungkin tidak ada pertanyaan, baiklah terima kasih. Kita lanjutkan pada bagian yang ke-10.
READ MORE - Kamus Inggris - Advance Form Center - Bagian ke-9

Tuesday, March 22, 2011

Kamus Inggris - Tutorial Cara Membuatnya

Agaknya prosedur-prosedur fungsi yang saya kumpulkan sudah lumayan walaupun tidak bisa disebut banyak, daripada prosedur-prosedur tersebut kurang bermanfaat dan menganggur, lebih baik kita gunakan untuk merakit software-software kecil. Lalu darimana kita memulainya...

Beberapa hal...
Prosedur-prosesedur fungsi yang telah saya tuliskan sebagian kecil berasal dari copy paste (tanpa modifikasi), sebagian kecil ide/dibuat sendiri, dan sebagian besar merupakan hasil copy yang selanjutnya dimodikasi kemudian dijalankan, untuk memastikan apakah ia bisa berjalan dengan baik. Prosedur-prosedur yang telah dimodifiksi tersebut diusahakan agar tidak memiliki dependency (ketergantungan) secara langsung terhadap objek maupun variable-variable yang bersifat publik, tujuan utamanya adalah agar memiliki sifat mudah digunakan kembali, mudah dicopypastekan, mudah di-encapsulate dalam bentuk dll atau ocx. Disamping itu ia akan menjadi prosedur dari pemrograman modular yang baik (jika tidak dijadikan dll atau ocx). Dengan demikian, kita dapat memisahkan bagian demi bagian dengan mudah, dan terhindar dari kerumitan kode karena melihatnya secara keseluruhan.

Untuk siapa tutorial ini?
Pemula, untuk pemula saja, karena saya pun seorang pemula. Jadi, jika seorang pemula bingung melihat kode, kemungkinan saya pun sama, jadi kita sama-sama belajar.

Selanjutnya...
Untuk membuat software-software kecil, ada beberepa tools yang harus kita kumpulkan dan miliki. Beberapa tools tersebut diantaranya memang harus dimiliki seperti InnoSetup (tools installer) dan sebagainya, dan sebagian lagi optional, hanya sebagai pelengkap untuk memudahkan dan mempercepat pekerjaan seperti MZ-Tools dan sebagainya (banyak). kita bahas saja sambil berjalan.

Software kecil apa yang akan kita buat?
Kamus Inggris Indonesia sederhana, karena yang tidak sederhana sudah banyak bertebaran di internet, walaupun sederhana, tetapi saya akan membagikannya menjadi beberapa puluh bagian (part).

Darimana databasenya?
Kebetulan saya memiliki beberapa database kamus inggris berasal dari software-software open source salah satunya dari gkamus, Kambing (bukan hewan) singkatan dari Kamus Bahasa Indonesia Inggris, dan lain sebagainya, terdiri dari puluhan ribu kosakata. Jika Anda ingin memilikinya, silakan kunjungi situsnya.
READ MORE - Kamus Inggris - Tutorial Cara Membuatnya

Monday, March 14, 2011

Kamus Inggris - Membuat Project Baru - Bagian Ke-2

Kamus Inggris - Membuat Project Baru merupakan kelanjutan dari Bagian ke-1.
Selanjutnya untuk membuat software menggunakan VB6, yang harus kita lakukan adalah membuat project baru.

Tujuan:
  • Membuat project baru menggunakan VB6
  • Menambahkan kemampuan copy text yang berasal dari Clipboard
Langkah-langkah:
  • Buat project baru
  • Tambahkan 2 TextBox, 1 ListBox, 1 Timer
  • Rubahlah property Interval pada Timer1 = 1
  • Ganti nama Project1 menjadi prjKamus
  • Ganti nama Form1 menjadi frmMain
  • Modifikasi ukuran-ukurannya, sehingga terlihat seperti gambar di bawah.
  • Simpanlah dalam folder, beri nama folder itu dengan Project Kamus Inggris
Kode-kode:
'simpan (copy dan pastekan) kode di bawah ini dalam frmMain 
Option Explicit

Dim
strFromClipboard As String

Private Sub
Timer1_Timer()
Dim s As String
s =
Clipboard.GetText
If s <> strFromClipboard Then
strFromClipboard = s
Text1.Text = strFromClipboard
End If
End Sub
Uji Coba:
  • Jalankan project yang baru kita buat dengan cara menekan tombol F5 atau mengklik tombol start yang terdapat pada toolbar VB6.
  • Copy sembarang text, maka text yang telah dicopy tadi secara otomatis akan masuk ke dalam Text1


READ MORE - Kamus Inggris - Membuat Project Baru - Bagian Ke-2

Kamus Inggris - Handle Error 521 dan Parse Text - Bagian 3

Kamus Inggris - Handle Error 521 merupakan kelanjutan dari Bagian ke-2.
Ternyata kode yang sangat sedikit yang terdapat pada bagian ke-2 menyisakan bug, terkadang ia memunculkan error yaitu Error Number = 521 Error Description = "Unable to open clipboard"

Tujuan pada bagian ke-3:
  • Meng-handle dan mengkoreksi Error 521
  • Mem-parse text dan menambahkannya ke dalam objek ListBox
  • Memfilter hanya karakter yang valid untuk diterjemahkan
Langkah-langkah:
  • Singkat saja, ganti seluruh kode yang terdapat pada bagian ke-1 (Error 521) dengan kode yang terdapat pada bagian kode-kode.
Kode-kode:
Option Explicit 

Private Declare Function
EmptyClipboard Lib "user32" ) As Long 'API Function
Dim strFromClipboard As String

'---------------------------------------------------------------------------------
' Copy text dari clipboard dan masukan ke dalam objek TextBox
' dengan men-trigger secara kontinyu menggunakan bantuan timer
'---------------------------------------------------------------------------------
Private Sub Timer1_Timer()

On Error GoTo
ErrHandler 'apabila error loncat ke Handle Error

Dim s As String

s =
Clipboard.GetText 'baris ini terkadang error |Error Number = 521|

If s
<> strFromClipboard Then
ParsingText s, List1
strFromClipboard = s
Text1.Text = strFromClipboard
End If

Exit Sub

ErrHandler:
'Handle Error
If Err.Number = 521 Then 'Can't open the clipboard
Text1.Text = ""
EmptyClipboard 'paksa kosongkan clipboard dengan Fungsi API
Resume Next 'loncat lagi ke baris atas dan lanjutkan eksekusi membaca kode)
End If

End Sub

'--------------------------------------------------------------------------------
' dua event List1_Click() dan Text_DblClick()
' dengan kode sementara, hanya untuk mengecek dan melihat hasilnya saja
'--------------------------------------------------------------------------------
Private Sub List1_Click()
Text2.Text = "Menterjemahkan : " & List1.Text & " ==> ke dalam bahasa Inggris"
End Sub

Private Sub
Text1_DblClick()
Text2.Text = "Menterjemahkan : " & Text1.SelText & " ==> ke dalam bahasa Inggris"
End Sub

'---------------------------------------------------------------------------------
' Fungsi untuk Parse uraikan) kalimat ke dalam text dan masukan ke ListBox
'---------------------------------------------------------------------------------
Private Sub ParsingText(s As String, lst As ListBox)

Dim
strText As String
Dim
y() As String
Dim i As Integer
Dim b As String

lst.Clear
strText = s
strText = Replace(strText, " ", vbCrLf)
y = Split(strText, vbCrLf)

For i =
LBound(y) To UBound(y)
b = Trim(y(i))
If IsValidWord(b) Then
lst.AddItem y(i)
End If
Next

End Sub

'-------------------------------------------------------------------------------
' Fungsi untuk memfilter karakter yang tidak valid diterjemahkan
'-------------------------------------------------------------------------------
Private Function IsValidWord(s As String) As Boolean

Dim x As String
Dim z As String

z =
"= - , . % *" 'tambahkan karakter tidak valid untuk diterjemahkan disini
x = s
If
Len(x) = 0 Then Exit Function
If
InStr(1, z, s) > 0 Then Exit Function
IsValidWord = True

End Function

'-------------------------------------------------------------------------------
' == End All Of Code ==
'-------------------------------------------------------------------------------
Uji Coba:
Jalankan, copy sembarang text dan klik sembarang item yang terdapat pada ListBox, apabila berhasil maka gambarnya seperti yang ada di samping [ScreenShot]

Mas, saya mau bertanya, apakah ini sedang membuat software Kamus Bahasa Inggris atau sedang membuat Rencana Pelaksaan Pembelajaran (RPP)?
READ MORE - Kamus Inggris - Handle Error 521 dan Parse Text - Bagian 3

Kamus Inggris - XP Style Manifest Dalam EXE - Bagian Ke-4

Kamus Inggris - XP Style Manifest Dalam EXE merupakan sambungan dari bagian ke-3.
Agar aplikasi yang kita buat memiliki theme XP style, maka cara yang termudah adalah menambahkan file manifest. Di antara beberapa cara menambahkan file manifest, maka menambahkannya langsung melalui file exe dianggap cara yang paling elegant, mengapa demikian? karena user tidak akan pernah melihat file manifest tersebut, baik file manifest dengan atribute normal, maupun manifest dengan atribute hidden (hidden file).

Tujuan pada bagian ke-4:
  • Menanam file manifest ke dalam exe, agar aplikasi memiliki theme XP Style.
  • Menjadikan Sub Main sebagai Startup Object
Langkah-langkah:
  • Buatlah manifest resource, jika tidak mau repot membuat manifest resource, Anda bisa mendownloadnya di sini.
  • Pada aplikasi VB6, klik Project >> Add File...
  • Tambahkan manifest resource file yang telah Anda buat atau Anda download tadi.
  • Buat module baru dan beri nama modMain (mod adalah prefix untuk module)
  • Tambahkan fungsi API InitCommonControls (akan dibahas pada bagian kode-kode)
  • Jadikan Sub Main() sebagai Startup Object
Kode-kode:
'simpan kode di bawah pada module modMain 
Option Explicit

Public Declare Sub
InitCommonControls Lib "Comctl32" )

Sub
Main()
InitCommonControls
frmMain.Show
End Sub
Uji Coba:
  • Compile Project (Klik File >> Make Kamus Inggris.exe)
  • Jalankan Kamus Inggris.exe melalui Windows Explorer, sekarang Anda lihat bahwa Kamus Inggris.exe memiliki theme XP Style.
Catatan:
Selain untuk aplikasi ini, menanam resource manifest juga bisa digunakan untuk aplikasi-aplikasi yang dibuat menggunakan Visual Basic 6.0 agar memiliki theme XP Style. Semoga bermanfaat.
READ MORE - Kamus Inggris - XP Style Manifest Dalam EXE - Bagian Ke-4

Saturday, March 5, 2011

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 6

وَمُفْرَدًا يَأتِي وَيَأتِي جُمْلَهْ ... حَاوِيَةً مَعْنَى الّذِي سِيْقَتْ لَهْ
وَمُفْرَدَنْ يَأتِيْ وَيَأتِي جُمْلَهْ ... حَاوِيَتَنْ مَعْنَى لْلَذِيْ سِيْقَتْ لَهْ
وَمُفْرَدَنْ- يَأتِيْ وَيَأ-تِي جُمْلَهْ ... حَاوِيَتَنْ -مَعْنَى لْلَذِيْ- سِيْقَتْ لَهْ
مَفَاعِلُنْ - مُسْتَفْعِلُنْ - مَفْعُوْلُنْ ... مُفْتَعِلُنْ - مُسْتَفْعِلُنْ - مَفْعُوْلُنْ
المخبونة - السالمة - المقطوعة ... المطويّة - السالمة - المقطوع

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 6

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 7

وَإِنْ تَكُنْ إِيَّاهُ مَعْنًى اكْتَفَى ... بِهَا كَنُطْقِي الله حَسْبِي وَكَفَى
وَإِنْ تَكُنْ إِيْيَاهُ مَعْنَن كْتَفَى ... بِهَا كَنُطْقِ لْلاهُ حَسْبِي وَكَفَى
وَإِنْ تَكُنْ- إِيْيَاهُ مَعْ-نَن كْتَفَى ... بِهَا كَنُطْ-قِ لْلاهُ حَسْ-بِي وَكَفَى
مَفَاعِلُنْ - مُسْتَفْعِلُنْ - مَفَاعِلُنْ ... مَفَاعِلُنْ - مُسْتَفْعِلُنْ - مُفْتَعِلُنْ
المخبونة - السالمة - المخبونة ... المخبونة - السالمة - المطويّ

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 7

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 8

وَالمُفْرَدُ الجَامِدُ فَارِغٌ وَإِنْ ... يُشْتَقَّ فَهْوَ ذُو ضَمِيْرٍ مُسْتَكِنْ
وَلْمُفْرَدُ لْجَامِدُ فَارِغُنْ وَإِنْ ... يُشْتَقْقَ فَهْوَ ذُو ضَمِيْرِنْ مُسْتَكِنْ
وَلْمُفْرَدُ لْ-جَامِدُ فَا-رِغُنْ وَإِنْ ... يُشْتَقْقَ فَهْ-وَ ذُو ضَمِيْ-رِنْ مُسْتَكِنْ
مُسْتَفْعِلُنْ - مُفْتَعِلُنْ - مَفَاعِلُنْ ... مُسْتَفْعِلُنْ - مَفَاعِلُنْ - مُسْتَفْعِلُنْ
السالمة - المطويّة - المخبونة ... السالمة - المخبونة - الصحيح

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 8

Nadzom Bahar Rojaz: Jawaban Latihan Soal No. 9

وَأَبْرِزَنْهُ مُطْلَقًا حَيْثُ تَلاَ ... مَا لَيْسَ مَعْنَاهُ لَهُ مُحَصَّلاَ
وَأَبْرِزَنْهُ مُطْلَقَنْ حَيْثُ تَلاَ ... مَا لَيْسَ مَعْنَاهُ لَهُو مُحَصْصَلاَ
وَأَبْرِزَنْ-هُ مُطْلَقَنْ-حَيْثُ تَلاَ ... مَا لَيْسَ مَعْ-نَاهُ لَهُو-مُحَصْصَلاَ
مَفَاعِلُنْ - مَفَاعِلُنْ - مُفْتَعِلُنْ ... مُسْتَفْعِلُنْ - مُفْتَعِلُنْ - مَفَاعِلُنْ
المخبونة - المخبونة - المطويّة ... السالمة - المطويّة - المخبون

READ MORE - Nadzom Bahar Rojaz: Jawaban Latihan Soal No. 9

Nadzom Bahar Rojaz: Jawaban Latihan Soal No. 10

وَأَخْبَرُوا بِظَرْفِ أوْ بِحَرْفِ جَرْ ... نَاوِيْنَ مَعْنَى كَائِنٍ أَوِ اسْتَقَرْ
وَأَخْبَرُوْ بِظَرْفِ أَوْ بِحَرْفِ جَرْ ... نَاوِيْنَ مَعْنَى كَائِنِنْ أَوِ سْتَقَرْ
وَأَخْبَرُوْ-بِظَرْفِ أَوْ-بِحَرْفِ جَرْ ... نَاوِيْنَ مَعْ-نَى كَائِنِنْ-أَوِ سْتَقَرْ
مَفَاعِلُنْ - مَفَاعِلُنْ - مَفَاعِلُنْ ... مُسْتَفْعِلُنْ - مُسْتَفْعِلُنْ - مَفَاعِلُنْ
المخبونة - المخبونة - المخبونة ... السالمة - السالمة - المخبون
READ MORE - Nadzom Bahar Rojaz: Jawaban Latihan Soal No. 10

VB6 Code - AutoFit TextBox.Text Caranya?

Yang dimaksud dengan AutoFit TextBox.Text disini adalah menyesuaikan ukuran huruf yang terdapat dalam objek TextBox agar sesuai dengan lebar textbox. Perhatikan gambar di bawah ini:
Pada mulanya text melebihi lebar textbox
menjadi:
Sekarang text sesuai dengan lebar textbox
Pada gambar di atas objek TextBox-nya lebih dari satu, sehingga prosedurnya harus dipanggil satu persatu menggunakan kode di bawah ini:

Option Explicit 
 '----------------------------------------------------------------------- 
'http://khoiriyyah.blogspot.com 
'By Asep Hibban Ibnu Surur) 
'----------------------------------------------------------------------- 
 
Private Sub Command1_Click() 
    Dim ctl As Object 
    For Each ctl In Me.Controls 
        If TypeName(ctl) = "TextBox" Then 
            AutoFitTextBox ctl 
        End If 
    Next 
End Sub 
Selengkapnya bisa Anda download pada link di bawah ini:

READ MORE - VB6 Code - AutoFit TextBox.Text Caranya?

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 5

وَالخَبَرُ الجُزْءُ المُتِمُّ الفَائِدَهْ ... كَالله بَرٌّ والأَيَادِي شَاهِدَهْ
وَلْخَبَرُ لْجُزْءُ لْمُتِمْمُ لْفَائِدَهْ ... كَلْلاهُ بَرْرُنْ وَلأَيَادِيْ شَاهِدَهْ
وَلْخَبَرُ لْ-جُزْءُ لْمُتِمْ-مُ لْفَائِدَهْ ... كَلْلاهُ بَرْ-رُنْ وَلأَيَا-دِيْ شَاهِدَهْ
مُفْتَعِلُنْ - مُسْتَفْعِلُنْ - مُسْتَفْعِلُنْ ... مُسْتَفْعِلُنْ - مُسْتَفْعِلُنْ - مُسْتَفْعِلُنْ
المطويّة - السالمة - الصحيحة ... السالمة - السالمة - الصحيح

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 5

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 4

وَرَفَعُوْا مُبْتَدَاءً بِالإِبْتِدَا ... كَذَاكَ رَفْعُ خَبَرٍ بِالمُبْتَدَا
وَرَفَعُوْ مُبْتَدَئَنْ بِلإِبْتِدَا ... كَذَاكَ رَفْعُ خَبَرِنْ بِلْمُبْتَدَا
وَرَفَعُوْ- مُبْتَدَئَنْ- بِلإِبْتِدَا ... كَذَاكَ رَفْ-عُ خَبَرِنْ-بِلْمُبْتَدَا
فَعِلَتُنْ - مُفْتَعِلُنْ - مُسْتَفْعِلُنْ ... مَفَاعِلُنْ - فَعِلَتُنْ - مُسْتَفْعِلُنْ
المخبولة - المطويّة - الصحيحة ... المخبونة - المخبولة - الصحيح

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 4

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 3

وَقِسْ وَكَاسْتِفْهَامٍ النَّفْيُ وَقَدْ ... يَجُوزُ نَحْوُ فَائِزٌ أُولُو الرَّشَدْ
وَقِسْ وَكَسْتِفْهَامِنِ نْنَفْيُ وَقَدْ ... يَجُوْزُ نَحْوُ فَائِزُنْ أُوْلُوْ رْرَشَدْ
وَقِسْ وَكَس-ْتِفْهَامِنِ نْ-نَفْيُ وَقَدْ ... يَجُوْزُ نَحْ-وُ فَائِزُنْ- أُوْلُوْ رْرَشَدْ
مَفَاعِلُنْ - مُسْتَفْعِلُنْ - مُفْتَعِلُنْ ... مَفَاعِلُنْ - مَفَاعِلُنْ - مُسْتَفْعِلُنْ
المخبونة - السالمة - المطويّة ... المخبونة - المخبونة - الصحيح

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 3

Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 2

وَأَوَّلٌ مُبْتَدَأٌ وَالثَّانِي ... فَاعِلٌ اغْنَى فِي أَسَارٍ ذَانِ
وَأَوْوَلُنْ مُبْتَدَئُنْ وَ ثْثَانِيْ ... فَاعِلُن غْنَى فِي أَسَارِنْ دَانِي
وَأَوْوَلُنْ - مُبْتَدَئُنْ - وَ ثْثَانِيْ ... فَاعِلُن غْ - نَى فِي أَسَا - رِنْ دَانِي
مَفَاعِلُنْ - مُفْتَعِلُنْ - مَفْعُوْلُنْ ... مُفْتَعِلُنْ - مُسْتَفْعِلُنْ - مَفْعُوْلُنْ
المخبونة - المطويّة - المقطوعة ... المطويّة - السالمة - المقطوع

READ MORE - Nadzom Bahar Rojaz: Jawaban Soal Latihan No. 2

Nadzom Bahar Rojaz : Jawaban Soal Latihan No. 1

مُبْتَدَأٌ زَيْدٌ وَعَاذِرٌ خَبَرْ ... إِنْ قُلْتَ زَيْدٌ عَاذِرٌ مَنِ اعْتَذَرْ
مُبْتَدَئُنْ زَيْدُنْ وَعَاذِرُنْ خَبَرْ ... إِنْ قُلْتَ زَيْدُنْ عَاذِرُنْ مَنِ عْتَذَرْ
مُفْتَعِلُنْ - مُسْتَفْعِلُنْ - مَفَاعِلُنْ ... مُسْتَفْعِلُنْ - مُسْتَفْعِلُنْ - مَفَاعِلُنْ
المطويّة - السالمة - المخبونة ... السالمة - السالمة - المخبون

READ MORE - Nadzom Bahar Rojaz : Jawaban Soal Latihan No. 1

Friday, March 4, 2011

VB6 Code - Code Generator: Add Ocx Add Dll

Yang dimaksud kode generator disini adalah sebuah aplikasi yang digunakan untuk membuat sebuah project. Adapun tujuan utamanya ialah untuk menghemat waktu, tenaga, dan biaya sedangkan tujuan lainnya yang tidak kalah penting adalah kecepatan.

Kode generator sangat baik sekali digunakan untuk men-generate aplikasi-aplikasi database, karena aplikasi database hampir memliki kode-kode yang sama (insert-update-delete-dsb) hanya objeknya saja yang berbeda. Maka jika kita ingin membuat belasan aplikasi database dengan objek yang berbeda, pembuatan kode generator dengan rancangan yang baik sangat layak untuk dipertimbangkan.

Hanya sebagai contoh saja, Anda dapat mendownload kode generator yang kurang baik disini. Walaupun kurang baik, tapi coba perhatikan apakah keistimewaanya?

Membuat aplikasi kode generator, tentunya harus memiliki kemampuan menambahkan sembarang OCX dan referensi DLL yang support VB6.0. Bagaimanakah caranya? Di bawah ini merupakan potongan dari kode generator tersebut, gunanya untuk menambahkan referensi DLL dan OCX.
'------------------------------------------------------------------------------- 
'http://khoiriyyah.blogspot.com 
'Asep Hibban 
'------------------------------------------------------------------------------- 
 
Public VBInstance As VBIDE.VBE 
Public Connect As Connect 
 
Option Explicit 

Public Function InsertOCX(ProgID As String) As Boolean 
On Error GoTo ErrHandler 
    'Add OCX 
     VBInstance.ActiveVBProject.AddToolboxProgID ProgID 
    InsertOCX = True 
Exit Function ErrHandler: 
    InsertOCX = False 
End Function 

Public Function InsertReferences(GUID As String, Mayor As Long, Minor As Long) As Boolean 
On Error GoTo ErrHandler 
    'Add dll references 
    VBInstance.ActiveVBProject.References.AddFromGuid GUID, Mayor, Minor 
    InsertReferences = True ErrHandler: 
    InsertReferences = False 
End Function 

Private Sub Command1_Click() 
    'Add ListView to VB6 project 
    InsertOCX "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" 
    'Add TreeView 
    InsertOCX "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" 
    'Add MSFlexGrid 
    InsertOCX "{0ECD9B60-23AA-11D0-B351-00A0C9055D8E}" 
End Sub 

Private Sub Command2_Click() 
    'Add scrun.dll Microsoft Scripting Runtime) 
    InsertReferences "{420B2830-E718-11CF-893D-00A0C9054228}", 1#, 0 
    'Add msado15.dll Microsoft ActiveX Data Objects 2.8 Library)  
    InsertReferences "{2A75196C-D9EB-4129-B803-931327F72D5C}", 2, 8 
End Sub 
Adapun cara menggunakan kode di atas telah saya bahas disini dan disini. Semoga bermanfaat.
READ MORE - VB6 Code - Code Generator: Add Ocx Add Dll

Visual Basic 6.0 - Kesalahan Penulisan Variable Yang Umum

Mengenai masalah kesalahan penulisan variable Visual Basic 6.0 yang sering ditemui - Seringkali kita menemui penulisan variable seperti di bawah ini:
Option Explicit 

Private Sub Form_Load() 
    Dim i, a, b, c, s As String    'Kode selanjutnya 
End Sub 
Penulisan variable seperti di atas seakan-akan menunjukan bahwa i, a, b, c memiliki tipe data string, Padahal dalam kenyataanya variable i, a, b, c di atas memiliki type data variant, hanya variable s saja dari contoh di atas yang memiliki type data string. Darimana kita mengetahuinya? mari kita lanjutkan.... rubahlah kode di atas sehingga menjadi:
Option Explicit 

Private Sub Form_Load() 
    Dim i, a, b, c, s As String    'Kode selanjutnya ... 
    'TypeName digunakan untuk mengetahui data type sebuah variable 
    Debug.Print TypeName(i) 'Empty -> data type variant 
    Debug.Print TypeName(b) 'Empty -> data type variant 
    Debug.Print TypeName(c) 'Empty -> data type variant 
    Debug.Print TypeName(s) 'String -> data type string 
End Sub  

Sebelum menjalankan kodenya, pijit CTRL + G untuk memunculkan Immediate Window untuk melihat hasilnya.
READ MORE - Visual Basic 6.0 - Kesalahan Penulisan Variable Yang Umum

Tuesday, March 1, 2011

VB6 Code - ToolBar, TabStrip, ListView, TreeView XP Style

Mengenai cara membuat toolbar, tabstrip, listview dengan tampilan XP tanpa kode - Bagaimana dengan ToolBar, TabStrip, TreeView, dan ListView, Apakah memungkinkan untuk dibuat style XP tanpa menggunakan kode, dan hanya menggunakan file manifest saja?

Seperti yang kita ketahui, menggunakan file manifest biasanya tidak memberikan efek/pengaruh pada komponen-komponen di atas. Tetapi coba perhatikan gambar di bawah:

Gambar 1, 2 ToolBar, TabStrip, ListView, TreeView Style XP

Bagaimana caranya? bisa Anda download file di bawah ini:

READ MORE - VB6 Code - ToolBar, TabStrip, ListView, TreeView XP Style

Monday, February 28, 2011

VB6 Code - Save As MHTML

Mengenai cara menyimpan halaman dengan format MHTML menggunakan Visual Basic 6.0 - Menyimpan file dalam format MHTML tentunya memiliki banyak keuntungan, salah satu dari banyak keuntungan tersebut ialah terintegrasinya seluruh gambar dan file dengan baik, sehingga kita bisa mendownload halaman situs/blog yang kita kunjungi utuh dengan seluruh gambarnya.
Option Explicit  

Public Function
SaveWebPageToMHTFile(url As String, filepath As String)

On Error GoTo
ErrHandler

Dim
msg As New CDO.Message
Dim
stm As New ADODB.Stream

msg.MimeFormatted = True
msg.CreateMHTMLBody url, CDO.CdoMHTMLFlags.cdoSuppressNone, "", ""
'//Pilih charset yang sesuai
stm.Charset = "utf-8"
Set
stm = msg.GetStream()
stm.SaveToFile filepath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite
Set
msg = Nothing
stm.Close

Exit Function

ErrHandler:

MsgBox Err.Description

End Function
Contoh pemanggilan prosedur fungsi di atas:
Private Sub Command1_Click()  
'//Coba menyimpan file dalam bentuk MHTML </i>
SaveWebPageToMHTFile "http://www.planet-source-code.com/vb/default.asp?lngWId=1", "c:\psc.MHTML"
End Sub
Catatan: Sebelum Anda menggunakan fungsi di atas, tambahkan referensi Microsoft ActiveX Data Objects 2.8 Liblary dan Microsoft CDO for Windows 2000 Liblary
READ MORE - VB6 Code - Save As MHTML

Saturday, February 26, 2011

VB6.0 - Set Google Chrome Default Home Site Programmatically

Mendefaultkan home site IE (Internet Explorer) atau Mozilla Firefox secara pemrograman mungkin kita sudah mengetahuinya, tapi bagaimana dengan Google Chrome yang tergolong relatif masih muda untuk saat ini (2011).

Masalah mendefaultkan Google Chrome home page, hanyalah masalah merubah 1 baris kode yang terdapat pada file preferences yang terdapat pada folder: .... \Local Settings\Application Data\Google\Chrome\User Data\Default.

Atau tepatnya merubah 1 baris kode yang terdapat pada gambar di bawah ini:

Gambar 1  Kode yang dirubah pada file preferences
Di bawah ini merupakan kode untuk mendefaultkan home page Google Chrome. Letakan kode ini pada module.

'---------------------------------------------------------------------------------- 
'From: http://khoiriyyah.blogspot.com
'By: Asep Hibban
'----------------------------------------------------------------------------------
Option Explicit

Public Sub
SetChromeHomepage(URL As String)

Dim
strPath As String, strProfile As String
Dim
strContent As String, strReplace As String
Dim
regex As RegExp, strSystemDrive As String

strPath = Environ("SystemDrive") & Environ("HOMEPATH")
strPath = strPath & "\Local Settings\Application Data\Google\Chrome\User Data\Default"
strProfile = Dir(strPath, vbDirectory)
Debug.Print strPath
If Len(strPath) Then
strPath = strPath & "\Preferences"
strReplace = Chr(34) & "homepage" & Chr(34) & ": " & Chr(34) & URL & Chr(34) & ","
strContent = fGetFileContents(strPath)
Set regex = New RegExp
If InStr(1, strContent, Chr(34) & "homepage" & Chr(34)) = 0 Then
strContent = strContent & vbCrLf & Chr(34) & "homepage" & Chr(34) & ": " & Chr(34) & URL & Chr(34) & ","
sPutStringToFile strContent, strPath
Exit Sub
ElseIf
InStr(1, strContent, strReplace) Then
Exit Sub
End If
'tidak bisa direplace menggunakan replace biasa
'maka kita gunakan regular expressions untuk keperluan ini
regex.Pattern = Chr(34) & "homepage" & Chr(34) & ": .*)"

strContent = regex.Replace(strContent, strReplace)
strContent = Replace(strContent, Chr(34) & "homepage_is_newtabpage" & Chr(34) & ": true,", vbCrLf & Chr(34) & "homepage_is_newtabpage" & Chr(34) & ": false,")
sPutStringToFile strContent, strPath

End If
End Sub

Public Function
fGetFileContents(strPath As String) As String
Dim
hFile As Integer
Dim
strFileContent As String


If
Len(Dir(strPath)) = 0 Then Exit Function

On Error GoTo
ErrGetFile
hFile = FreeFile

Open
strPath For Binary As #hFile
strFileContent = Space(LOF(hFile))
Get #hFile, , strFileContent
Close #hFile

fGetFileContents = strFileContent
Exit Function

ErrGetFile:

Close
MsgBox Err.Description, vbCritical, "GetFileContents"

End Function

Public Sub
sPutStringToFile(strContent As String, strPath As String)
Dim hFile As Integer

'If file exists delete it.
On Error Resume Next
Kill
strPath
On Error GoTo ErrPutString

'Write file
hFile = FreeFile
Open
strPath For Binary As #hFile
Put #hFile, , strContent
Close #hFile

Exit Sub

ErrPutString:

Close #hFile
MsgBox Err.Description, vbCritical, "PutStringToFile"

End Sub
Contoh pemanggilan prosedure di atas:
Private Sub Command1_Click() 
SetChromeHomepage "http://khoiriyyah.blogspot.com"
End Sub
READ MORE - VB6.0 - Set Google Chrome Default Home Site Programmatically

Monday, February 14, 2011

Menghilangkan Virus Copy of Shortcut to (1) to (4) secara Manual

Pernahkah PC/flasdisc Anda terinfeksi virus seperti di bawah ini:

Sementara disaat yang bersamaan PC Anda telah terpasang misalnya 2 Antivirus (lokal maupun luar) dengan update terbaru. Jika keduanya mampu menghapus secara tuntas virusnya, tentu tidak ada masalah dan Anda disarankan untuk tidak melanjutkan membaca artikel ini. Tapi Jika keduanya tidak mampu mengatasi masalah diatas dan komputer Anda terasa sangat lambat sekali, koneksi internet sangat lambat sekali, maka terpaksa Anda harus menghapusnya secara manual. Bagaimana caranya:
Langkah pertama:
  1. Hapus/pindahkan seluruh file aplikasi browser, misalnya: Chrome.exe, firefox.exe, IExplorer.exe, dan sebagainya ke sebuah folder tertentu.
  2. Putuskan koneksi internet, cabut seluruh flashdisc.
  3. Restar komputer.
  4. Hapus file-file virusnya.
  5. Selesai.
Penjelasan:
  • Chrome.exe terdapat pada: C:\Documents and Settings\.....\Local Settings\Application Data\Google\Chrome\Application\chrome.exe
  • firefox.exe terdapat pada: C:\Program Files\Mozilla Firefox\firefox.exe
  • IExplorer.exe terdapat pada: C:\Program Files\Internet Explorer\IExplorer.exe
  • dan file-file browsing lainnya dengan menggunakan search. Pastikan file browser tersebut tidak dalam keadaan berjalan dengan melihatnya melalui Windows Task Manager.
  • Setelah direstart. kini giliran menghapus file-file virusnya, caranya:
    Pertama: Buka folder C:\Program Files maka perhatikan disana akan terdapat folder dengan nama acak, di dalamnya ada satu file exe, itulah yang menjadi file virusnya (karena acak, nama virus tidak harus sama dengan yang terdapat dalam gambar). Perhatikan gambar di bawah ini:

Kedua: Buka folder C:\Documents and Settings\Ibnu Surur\Start Menu\Programs\Startup. Di dalam folder ini Anda akan menemukan satu file virus lagi (karena acak, nama virus tidak harus sama dengan yang terdapat dalam gambar). Hapus saja secara manual. Sekarang Anda aman.


Jika Anda mau Anda dapat melakukan pembersihan terhadap key-key registry yang telah dirubah, juga menghapus seluruh file-file yang telah ditambahkan pada flashdisc. Hapus pula file dmlconf.dat (cari melalui search), mengaktifkan safemode kembali, mendisable autorun seluruh disc. Tapi jika tidak pun tidak apa-apa, hanya berpotensi terinfeksi virus kembali.

Terakhir: tiba saatnya mengucapkan selamat jalan pada virus tersebut.

Jika dilihat dari tingkah lakunya, virus tersebut tidak merubah/merusak file, hanya membuat komputer lambat, dan kemungkinan (hanya kemungkinan saja, mudah-mudahan tidak) mengintai (spy) aktifitas Anda berinternet serta mengkoleksi password-password Anda.

Update (12-2012):
Cara di atas sudah tidak bisa digunakan lagi, dikarenakan virus copy of shortcut sudah bisa melakukan infeksi terhadap file-file yang berektensi *.exe, *.dll, *.html. Untuk solusinya silakan klik link di samping Cara mudah mengatasi virus shortcut

READ MORE - Menghilangkan Virus Copy of Shortcut to (1) to (4) secara Manual

Thursday, December 23, 2010

Cetak Ke Printer Via LPT Port Menggunakan VB6

Di bawah ini merupakan contoh cara mencetak ke printer via LPT Port menggunakan Visual Basic 6 - Adapun kodenya adalah sebagai berikut:
Public Function PrintToLPTPort(ByVal port As String, ByVal text As String) As Boolean 
On Error GoTo
ErrHandler
Dim l As Long
l = FreeFile
Open
port For Output As #l
Print #F, text
Close #l
PrintToLPTPort = True
Exit Function

ErrHandler:
PrintToLPTPort = False
End Function
Contoh penggunaan cetak ke printer via LPT Port:
Private Sub Command1_Click() 
PrintToLPTPort "LPT1", "Test Print"
End Sub
READ MORE - Cetak Ke Printer Via LPT Port Menggunakan VB6

Wednesday, December 22, 2010

Web Color Spy - Mendeteksi Warna Standar Web

Di bawah ini merupakan project VB6 sederhana untuk mendeteksi warna standar web. Bagaimana kode project web color spy untuk mendeteksi warna standar web, bisa lihat di bawah ini:
'simpan kode di bawah pada module 
Option Explicit

Public Declare Function
CreateDC& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Any)
Public Declare Function DeleteDC& Lib "gdi32" (ByVal hdc As Long)
Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Type
POINTAPI
X As Long
Y As Long
End Type

Public Declare Function
GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'simpan kode di bawah pada form 
'Timer.Interval = 1
'Picture1.AutoRedraw = True

Option Explicit

Dim pt As
POINTAPI
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 
Timer1.Enabled = True
Picture1.MousePointer = vbCrosshair
End Sub

Private Sub
Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
Picture1.MousePointer = vbDefault
End Sub

Private Sub
Timer1_Timer()
Dim screendc As Long
GetCursorPos pt
screendc = CreateDC("DISPLAY", "", "", 0&)
Picture1.BackColor = GetPixel(screendc, pt.X, pt.Y)
Text1.Text = "#" & Hex(GetPixel(screendc, pt.X, pt.Y))
DeleteDC (screendc)
End Sub
READ MORE - Web Color Spy - Mendeteksi Warna Standar Web

Friday, October 8, 2010

Download Software Faraidh (Hitung Warits) At-Tashil Versi 4.1

At-Tashil, merupakan software faraidh (hitung warits) , dilengkapi dengan fasilitas struktur pohonnya yang sangat membantu mempermudah dalam penggunaan. At-Tashil dibuat oleh Mas Ahmad Ruswandi. Dalam At-Tashil v4.0 terdapat dua tambahan bahasa, yakni Arab dan Inggris. Versi 4.1 (Oktober 2010) merupakan versi terakhir yang telah dirilis.

Menurut pembuatnya, Software ini masih dalam tahap evaluasi. Silahkan download dan diperiksa, bilamana terdapat bugs dan errors dalam software ini, Anda dapat berbagi dengan pengembangnya melalui email kaisansoft [at] gmail.com atau diskusikan melalui forum di situs kaisansoft.com.

Download Software At-Tashil Versi 4.1

Perhatian: 
Saat ini situ http://kaisansoft.com sudah tidak bisa di akses lagi.
READ MORE - Download Software Faraidh (Hitung Warits) At-Tashil Versi 4.1

Friday, October 1, 2010

Manteq - Faraidh : Contoh Soal - 5

Seseorang meninggal dunia dengan meninggalkan harta 216.000, adapun ahli waritsnya: Istri, ayah, ibu, anak perempuan, cucu perempuan

Istri
Apakah: terdapat far'ul warits?
YA maka 1/8
JIKA TIDAK maka 1/4

Maka kesimpulannya istri 1/8

Ayah
Apakah: Bersama far'ul warits mudzakkar?
YA maka 1/6
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka 1/6 + ( ashabah jika radd)
JIKA TIDAK, maka ashabah (binafsihi).

Maka kesimpulannya ayah 1/6 + ( ashabah jika radd)

Ibu
Apakah: masalah gharrawain?
YA maka 1/3 sisa
JIKA TIDAK, apakah bersama far'ul warits atau sekumpulan saudara/saudari?
YA maka 1/6
Jika tidak maka 1/3

Maka kesimpulannya ibu 1/6

Anak perempuan
Apakah:Bersama mua'shibnya (anak laki-laki)?
YA maka ashabah (bilghairi)
JIKA TIDAK, apakah 1 orang?
YA maka 1/2
JIKA TIDAK, maka 2/3

Maka kesimpulannya anak perempuan 1/2

Cucu Perempuan
Apakah: Ada anak laki-laki?
YA, maka mahjub
JIKA TIDAK, apakah bersama muashibnya (cucu laki-laki)?
YA maka ashabah (bilghairi)
JIKA TIDAK, apakah ada anak perempuan > 1 orang?
YA maka mahjub
JIKA TIDAK, apakah ada anak perempuan = 1 orang?
YA maka 1/6
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK, maka 2/3

Maka kesimpulannya cucu perempuan 1/6

1/8 x 24 = 3
1/6 x 24 = 4
1/6 x 24 = 4
1/2 x 24 = 12
1/6 x 24 = 4

3 + 4 + 4 + 12 + 4 = 27
Jika hasilnya lebih dari 24 maka aul dan 27 lebih dari 24 maka aul.

Istri : 3/27 x 216.000 = 24.000
Ayah : 4/27 x 216.000 = 32.000
Ibu : 4/27 x 216.000 = 32.000
Anak perempuan : 12/27 x 216.000 = 96.000
Cucu perempuan : 4/27 x 216.000 = 32.000

SELESAI
READ MORE - Manteq - Faraidh : Contoh Soal - 5

Manteq - Faraidh: Contoh Soal - 4

Seseorang meninggal dunia dengan meninggalkan harta 300.000, adapun ahli waritsnya: Saudari kandung, saudari seibu, saudari seayah

Saudari kandung
Apakah bersama ayah ATAU far'ul warits mudzakkar?
YA maka mahjub
JIKA TIDAK, apakah bersama muashibnya (saudara kandung)?
YA maka ashabah (bilghair)
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka ashabah (ma'al ghair)
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK 2/3

Maka kesimpulannya saudari kandung mendapatkan 1/2

Saudari seibu
Apakah bersama ashlul warits mudzakkar ATAU far'ul warits?
YA maka mahjub
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/6
JIKA TIDAK, maka 1/3

Maka kesimpulannya saudari seibu mendapatkan 1/6

Saudari seayah
Apakah bersama ayah ATAU far'ul warits mudzakkar ATAU Saudari kandung yang menjadi ashabah (ma'al ghair) ATAU saudara kandung?
YA maka mahjub
JIKA TIDAK, apakah bersama muashibnya (saudara seayah)?
YA maka ashabah (bilghair)
JIKA TIDAK, apakah bersama 2 saudari kandung atau lebih?
YA maka mahjub
JIKA TIDAK, apakah bersama 1 saudari kandung?
YA maka 1/6
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka ashabah ma'al ghair
JIKA TIDAK, apakah berjumlah satu orang?
YA maka 1/2
JIKA TIDAK, 2/3

Maka kesimpulannya saudari seayah mendapatkan 1/6

1/2 x 24 = 12
1/6 x 24 = 4
1/6 x 24 = 4

12 + 4 + 4 = 20
Jika hasilnya kurang dari 24 maka radd, dan 20 kurang dari 24 maka radd.

Saudari kandung : 12/20 x 300.000 = 180.000
Saudari seibu : 4/20 x 300.000 = 60.000
Saudari seayah : 4/20 x 300.000 = 60.000

SELESAI
READ MORE - Manteq - Faraidh: Contoh Soal - 4

Manteq - Faraidh: Contoh Soal - 3

Seseorang meninggal dunia dengan meninggalkan harta 240.000, Adapun ahli waritsnya: Istri, ibu, saudara seibu

Istri
Apakah: terdapat far'ul warits?
YA maka 1/8
JIKA TIDAK maka 1/4

Maka kesimpulannya istri mendapatkan 1/4

Ibu
Apakah: masalah gharrawain?
YA maka 1/3 sisa
JIKA TIDAK, apakah bersama far'ul warits atau sekumpulan saudara/saudari?
YA maka 1/6
JIKA TIDAK maka 1/3

Maka kesimpulannya ibu mendapatkan 1/3

Saudara seibu
Apakah bersama ashlul warits mudzakkar ATAU far'ul warits?
YA maka mahjub
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/6
JIKA TIDAK, maka 1/3

Maka kesimpulannya saudara seibu mendapat 1/3

Istri : 1/4
Ibu : 1/3
Saudara seibu : 1/6

1/4 x 240.000 = 60.000
maka sisanya (240.000 – 60.000) = 180.000
1/3 x 24 = 8
1/6 x 24 = 4

6 + 8 = 12
Jika hasilnya kurang dari 24 maka radd, dan 12 kurang dari 24 maka radd.

Ibu : 8/12 x 180.000 = 120.000
Saudara seibu : 4/12 x 18.000 = 60.000

Catatan:
Istri atau suami tidak mendapatkan harta radd.

SELESAI
READ MORE - Manteq - Faraidh: Contoh Soal - 3

Manteq - Faraidh: Contoh Soal - 2

Seseorang meninggal dunia dengan meninggalkan harta 600.000, adapun ahli waritsnya: Suami, ibu, 2 saudara seibu, saudari kandung, saudari seayah

Suami
Apakah: terdapat far'ul warits?
YA maka 1/4
JIKA TIDAK maka 1/2

Maka kesimpulannya suami mendapat 1/2

Ibu
Apakah: masalah gharrawain?
YA maka 1/3 sisa
JIKA TIDAK, apakah bersama far'ul warits ATAU sekumpulan saudara/saudari?
YA maka 1/6
Jika tidak maka 1/3

Maka kesimpulannya ibu mendapat 1/6

2 Saudara seibu
Apakah bersama ashlul warits mudzakkar ATAU far'ul warits?
YA maka mahjub
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/6
JIKA TIDAK, maka 1/3

Maka kesimpulannya 2 saudara seibu mendapat 1/3

Saudari kandung
Apakah bersama ayah ATAU far'ul warits mudzakkar?
YA maka mahjub
JIKA TIDAK, apakah bersama muashibnya (saudara kandung)?
YA maka ashabah (bilghair)
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka ashabah (ma'al ghair)
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK 2/3

Maka kesimpulannya saudari kandung mendapat 1/2

Saudari seayah
Apakah bersama ayah ATAU far'ul warits mudzakkar ATAU Saudari kandung yang menjadi ashabah (ma'al ghair) ATAU saudara kandung?
YA maka mahjub
JIKA TIDAK, apakah bersama muashibnya (saudara seayah)?
YA maka ashabah (bilghair)
JIKA TIDAK, apakah bersama 2 saudari kandung atau lebih?
YA maka mahjub
JIKA TIDAK, apakah bersama 1 saudari kandung?
YA maka 1/6
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka ashabah ma'al ghair
JIKA TIDAK, apakah berjumlah satu orang?
YA maka 1/2
JIKA TIDAK, 2/3

Maka kesimpulannya saudari seayah mendapatkan 1/6

Suami 1/2
Ibu 1/6
2 saudara seibu 1/3
Saudari kandung 1/2
Saudari seayah 1/6

1/2 x 24 = 12
1/6 x 24 = 4
1/3 x 24 = 8
1/2 x 24 = 12
1/6 x 24 = 4

12 + 4 + 8 + 12 + 4 = 40
Jika hasilnya lebih dari 24 maka aul dan 40 lebih dari 24 maka aul.

Suami : 12/40 x 600.000 = 180.000
Ibu : 4/40 x 600.000 = 60.000
2 Saudara seibu : 8/40 x 600.000 = 120.000
Saudari kandung : 12/40 x 600.000 = 180.000
Saudari seayah : 4/40 x 600.000 = 60.000

SELESAI
READ MORE - Manteq - Faraidh: Contoh Soal - 2

Manteq - Faraidh: Contoh Soal - 1

Soal: Seseorang meninggal dunia meninggalkan harta 54.000, adapun ahli waritsnya: Anak perempuan, cucu perempuan, ibunya bapak, saudari kandung, ibu dari ibunya ibu

Agar jelas bagiannya, kita ulangi kembali dari masing-masing ahli waritsnya:

Anak perempuan.
Apakah:Bersama mua'shibnya (anak laki-laki)?
YA maka ashabah (bilghairi)
JIKA TIDAK, apakah 1 orang?
YA maka 1/2
JIKA TIDAK, maka 2/3

Maka kesimpulannya anak perempuan mendapat 1/2

Cucu Perempuan
Apakah: Ada anak laki-laki?
YA, maka mahjub
JIKA TIDAK, apakah bersama muashibnya (cucu laki-laki)?
YA maka ashabah (bilghairi)
JIKA TIDAK, apakah ada anak perempuan > 1 orang?
YA maka mahjub
JIKA TIDAK, apakah ada anak perempuan = 1 orang?
YA maka 1/6
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK, maka 2/3

Maka kesimpulannya cucu perempuan mendapat 1/6

Ibunya Bapak (nenek shahih jurusan bapak)
Apakah bersama ibu ATAU ayah ATAU kakek shahih?
YA maka mahjub
JIKA TIDAK maka 1/6

Maka kesimpulannya ibunya ibu mendapat 1/6

Saudari kandung
Apakah bersama ayah ATAU far'ul warits mudzakkar?
YA maka mahjub
JIKA TIDAK, apakah bersama muashibnya (saudara kandung)?
YA maka ashabah (bilghair)
JIKA TIDAK, apakah bersama far'ul warits muannats?
YA maka ashabah (ma'al ghair)
JIKA TIDAK, apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK 2/3

Maka kesimpulannya saudari kandung menjadi ashabah (ma’al ghair)

Ibu dari ibunya ibu (ibunya nenek shahih jurusan ibu)
Apakah bersama ibu ATAU nenek yang lebih dekat?
YA maka mahjub
JIKA TIDAK maka 1/6

Maka kesimpulannya ibu dari ibunya ibu terhijab oleh nenek yang lebih dekat (ibunya bapak)

Anak perempuan 1/2
Cucu perempuan 1/6
Ibunya bapak 1/6
Saudari kandung Ashabah (ma’al ghair)
Ibu dari ibunya ibu terhijab oleh nenek yang lebih dekat (ibunya bapak)

Anak perempuan : 1/2 x 54.000 = 27.000
Cucu perempuan : 1/6 x 54.000 = 9.000
Ibunya bapak : 1/6 x 54.000 = 9.000
Saudari kandung (Ashabah ma’al ghair) : 54.000 – (27.000 + 9.000 + 9.000) = 9.000

SELESAI
READ MORE - Manteq - Faraidh: Contoh Soal - 1

Manteq - Faraidh: Anak paman seayah

Apakah bersama salah satu para penghijab anak paman kandung ATAU anak paman kandung?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Anak paman seayah

Manteq - Faraidh: Anak paman kandung

Apakah bersama salah satu para penghijab paman seayah ATAU paman seayah?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Anak paman kandung

Manteq - Faraidh: paman seayah

Apakah bersama salah satu para penghijab paman kandung ATAU paman kandung?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: paman seayah

Manteq - Faraidh: Paman kandung

Apakah bersama salah satu para penghijab anak saudara seayah ATAU anak saudara seayah?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Paman kandung

Manteq - Faraidh: Anak saudara kandung

Apakah bersama salah satu para penghijab saudara seayah ATAU saudara seayah ATAU kakek shahih?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Anak saudara kandung

Manteq - Faraidh: Anak saudara seayah

Apakah bersama salah satu para penghijab saudara kandung ATAU anak saudara kandung?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Anak saudara seayah

Manteq - Faraidh: Saudara seayah

Apakah bersama salah satu para penghijab saudara kandung ATAU saudara kandung ATAU saudari kandung ma'al ghair?
YA maka MAHJUB
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Saudara seayah

Manteq - Faraidh: Saudara kandung

Apakah bersama far'ul warits mudzakkar ATAU ayah?
YA maka MAHJUB
Apakah masalah musyarakah?
YA maka selesaikan dengan MASALAH MUSYARAKAH
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Saudara kandung

Manteq - Faraidh: Saudara/Saudari seibu

Apakah bersama ashlul warits mudzakkar ATAU far'ul warits?
YA maka mahjub
JIKA TIDAK apakah berjumlah 1 orang?
YA maka 1/6
JIKA TIDAK maka 1/3
READ MORE - Manteq - Faraidh: Saudara/Saudari seibu

Manteq - Faraidh: Saudari seayah

Apakah bersama ayah ATAU far'ul warits mudzakkar ATAU Saudari kandung yang menjadi ashabah (ma'al ghair) ATAU saudara kandung?
YA maka MAHJUB
JIKA TIDAK apakah bersama muashibnya (saudara seayah)?
YA maka ASHABAH (BILGHAIR)
JIKA TIDAK apakah bersama 2 saudari kandung atau lebih?
YA maka MAHJUB
JIKA TIDAK apakah bersama 1 saudari kandung?
YA maka 1/6
JIKA TIDAK apakah bersama far'ul warits muannats?
YA maka ASHABAH (MA'AL GHAIR)
JIKA TIDAK apakah berjumlah satu orang?
YA maka 1/2
JIKA TIDAK maka 2/3
READ MORE - Manteq - Faraidh: Saudari seayah

Manteq - Faraidh: Saudari kandung

Apakah bersama ayah ATAU far'ul warits mudzakkar?
YA maka MAHJUB
JIKA TIDAK apakah bersama muashibnya (saudara kandung)?
YA maka ASHABAH (BILGHAIR)
JIKA TIDAK apakah bersama far'ul warits muannats?
YA maka ASHABAH (MA'AL GHAIR)
JIKA TIDAK apakah berjumlah 1 orang?
YA maka 1/2
JIKA TIDAK maka 2/3
READ MORE - Manteq - Faraidh: Saudari kandung

Manteq - Faraidh: Nenek shahihah jurusan ibu

Apakah bersama ibu?
YA maka MAHJUB
JIKA TIDAK maka 1/6
READ MORE - Manteq - Faraidh: Nenek shahihah jurusan ibu

Manteq - Faraidh: Nenek shahihah jurusan ayah

Apakah bersama ibu ATAU ayah ATAU kakek shahih?
YA maka MAHJUB
JIKA TIDAK maka 1/6
READ MORE - Manteq - Faraidh: Nenek shahihah jurusan ayah

Manteq - Faraidh: Ibu

Apakah masalah gharrawain?
YA maka 1/3 SISA
JIKA TIDAK apakah bersama far'ul warits ATAU sekumpulan saudara/saudari?
YA maka 1/6
JIKA TIDAK maka 1/3
READ MORE - Manteq - Faraidh: Ibu

Manteq - Faraidh: Kakek shahih

Apakah bersama ayah?
YA maka MAHJUB
JIKA TIDAK apakah bersama far'ul warits mudzakar?
YA maka 1/6
JIKA TIDAK apakah bersama far'ul warits muannats?
YA maka 1/6 + ASHABAH
JIKA TIDAK maka ASHABAH (BINAFSIHI)
READ MORE - Manteq - Faraidh: Kakek shahih