Archive for Hafidz_2010 VB 6.0

Mengubah atribut file dengan Ms. VB 6.0


Kalo gak salah satu tahun 2006 yang lalu aku dapet komputer yang kena sebuah virus, aku gak tau apa namanya tapi aku dan teman-teman menyebutnya virus 463 karena besar file yang dihasilkan sebesar 463 Kb. Virus ini menghiden semua folder yang ada dan mengantinya dengan file bentukan yang baru namun berekstensi aplikasi atau (.exe). Si virus berhasil aku lumpuhkan dan file bentukannya sudah aku bersihkan, namun karena semua folder di hidden sama si virus mau gak mau aku harus mengembaliinnya seperti semula lagi. Aku coba klik kanan foldernya lalu propertis dengan harapan bisa aku hilangin centang pada hidden-nya, tapi ternyata si virus bukan cuma meng-hidden-nya tapi meng-superhidden atau hidden system. cara satu-satunya dengan cara menghilangkan attribut filenya melalui command promt dengan mengetikkan ” attrib -S -H nama_file “, ko cuma satu file seh gak masalah, tapi klo semua folder tentu butuh waktu yang sangat lama dan capek banget.

Akhirnya aku mencoba membuat sebuah aplikasi untuk mengubah attribut filenya menggunakan microsoft visual basic 6.0 , dan berhasil. neh aku bagiin sebuah aplikasi sederhana untuk membuka file yang ke superhidden.

Tampilan aplikasinya sbb:


Berikut adalah coding buat modulnya :

Public Declare Function FindFirstFile Lib “kernel32” Alias “FindFirstFileA” (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib “kernel32” Alias “FindNextFileA” (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function GetFileAttributes Lib “kernel32” Alias “GetFileAttributesA” (ByVal lpFileName As String) As Long
Public Declare Function FindClose Lib “kernel32” (ByVal hFindFile As Long) As Long
Public Declare Function SetFileAttributes Lib “kernel32” Alias “SetFileAttributesA” (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Public Declare Function CloseHandle Lib “kernel32” (ByVal hObject As Long) As Long

Public Const MAX_PATH = 260
Public Const MAXWORD = &HFFFF
Public Const INVALID_HANDLE_VALUE = -1
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Public Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) – 1)
End If

StripNulls = OriginalStr
End Function

Dan ini coding pada formnya :

Option Explicit

Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)

Dim FileName As String
Dim DirName As String
Dim SearchPath As String, FindStr As String
Dim dirNames() As String
Dim nDir As Integer
Dim i As Integer
Dim hSearch As Long
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
Dim x As Long
Dim xx As Long

If Right(path, 1) <> “\” Then path = path & “\”
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & “*”, WFD)

If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont

DirName = StripNulls(WFD.cFileName)

If (DirName <> “.”) And (DirName <> “..”) Then
If GetFileAttributes(path & DirName) Or FILE_ATTRIBUTE_DIRECTORY Then

dirNames(nDir) = DirName
DirCount = DirCount + 1

nDir = nDir + 1
ReDim Preserve dirNames(nDir)

End If
End If
If (DirName <> “.”) And (DirName <> “..”) And (DirName <> “RECYCLER”) And (DirName <> “System Volume Information”) And (DirName <> “Thumbs.db”) And (DirName <> “Desktop.ini”) And (DirName <> “desktop.ini”) Then
x = SetFileAttributes(path & DirName, FILE_ATTRIBUTE_NORMAL)
xx = CloseHandle(x)

List1.AddItem path & DirName
End If
Cont = FindNextFile(hSearch, WFD)

Loop
Cont = FindClose(hSearch)

End If

If nDir > 0 Then
For i = 0 To nDir – 1
FindFilesAPI = FindFilesAPI(path & dirNames(i) & “\”, SearchStr, FileCount, DirCount)
Next i
End If

End Function

Private Sub Command1_Click()
Dim SearchPath As String, FindStr As String
Dim FileSize As Long
Dim NumFiles As Integer, NumDirs As Integer
Dim msg

If Trim(UCase(Text1.Text)) = “C:\” Then
msg = MsgBox(“Any Directories System will be show ” & Chr(13) & ” Are you sure to continue ?”, vbQuestion + vbYesNo, “:: Confirmation ::”)
If msg = vbYes Then
GoTo scan_acc
End If
Else
GoTo scan_acc
End If
Exit Sub

scan_acc:
Screen.MousePointer = vbHourglass
Command2.Enabled = False
Command1.Caption = “Please….wait”
List1.Clear
Label4.Caption = “”
SearchPath = Text1.Text
FindStr = Label1.Caption
FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
Label4.Caption = NumDirs & ” Directories found in ‘ ” & SearchPath & “‘”
Screen.MousePointer = vbDefault
Command2.Enabled = True
Command1.Caption = “&Scan”
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Dir1_Change()
Text1.Text = Dir1.path
End Sub

Private Sub Drive1_Change()
On Error GoTo err
Dir1.path = Drive1.Drive
Exit Sub

err:
MsgBox “Device not ready”, vbExclamation, “:: Device ::”
Drive1.Drive = “D:\”
Exit Sub
End Sub

Private Sub Form_Load()
Drive1.Drive = “D:\”
End Sub

Semoga aplikasi ini bisa membantu dan bisa memberikan ide baru buat kamu yang pengen belajar bareng aku.

Simple Stopwatch Application from VB 6.0


Untuk membuat sebuah aplikasi yang menggunakan control timer satu hal yang perlu diperhatiin atau diketahui yaitu interval yang digunakan. Pada visual basic untuk satu detik nilai interval timernya adalah 1000.

Code program ini bisa kalian coba buat dengan metode perulangan atau looping. Namun pada code ini saya menggunakan “if bersarang”. dan saya mencoba membuat sebuah logika yang sederhana yang semoga saja bisa dimengerti.
Berikut tampilan design dan name dari tiap control nya aplikasinya:


Dan berikut adalah coding yang digunakan :

Dim jam, menit, detik, milisec

Private Sub cmdExit_Click()

Timer1.Enabled = False
Timer2.Enabled = False
End

End Sub

Private Sub cmdreset_Click()

‘membuat tampilan menjadi 00:00:00:00

lblSecon.Caption = “00”
lblMinute.Caption = “00”
lblHour.Caption = “00”

‘pengaturan nilai variabel

jam = “0”
menit = “0”
detik = “0”

End Sub

Private Sub cmdStart_Click()

Timer1.Enabled = True
Timer2.Enabled = True
cmdreset.Enabled = False
cmdStart.Enabled = False
cmdStop.Enabled = True

jam = lblHour.Caption
menit = lblMinute.Caption
detik = lblSecon.Caption

End Sub

Private Sub cmdStop_Click()

Timer1.Enabled = False
Timer2.Enabled = False
cmdreset.Enabled = True
cmdStart.Enabled = True
cmdStop.Enabled = False

End Sub

Private Sub Form_Load()

‘pemberian nilai properti interval timer
‘ interval untuk satu detik sama dengan kuranglebih 1000

Timer1.Interval = 1000
Timer2.Interval = 500

End Sub

Private Sub Timer1_Timer()

detik = detik + 1
If Val(detik) > 59 Then ‘fungsi “val” untuk menggubah karakter menjadi angka atau number

detik = “00”
menit = Val(menit) + 1

If Val(menit) > 59 Then

menit = “00”
jam = Val(jam) + 1

If Val(jam) > 23 Then
jam = “00”

End If
End If
End If

d = Len(detik) ‘fungsi “len” berguna untuk mengetahui banyak/panjang karakter
If d = 1 Then
lblSecon.Caption = “0” & detik ‘membuat tampilan menjadi “0X”
‘tanda “&” berfungsi untuk penggabungan karakter
Else
lblSecon.Caption = detik
End If

m = Len(menit)
If m = 1 Then
lblMinute.Caption = “0” & menit
Else
lblMinute.Caption = menit
End If

j = Len(jam)
If j = 1 Then
lblHour.Caption = “0” & jam
Else
lblHour.Caption = jam
End If

End Sub

Private Sub Timer2_Timer()

‘Untuk membuat karakter titik dua ( : ) berkedip

Label1.Visible = Not Label1.Visible
Label2.Visible = Not Label2.Visible

End Sub

Untk pengembangannya bisa dicoba menambahkan fasilitas milisecon nya.

Modul Koneksi Vb 6.0 dengan Database Sql Server 2000


Klo beberapa waktu lalu saya sudah mempostingkan cara untuk koneksi vb 6.0 dengan database microsoft access, sekarang saya berikan cara koneksi bila menggunakan database ms. sql server. Database yang saya gunakan adalah sql server 2000 jadi klo ada perbedaan cara koneksinya bila menggunakan database sql yang terbaru mohon dikonfirmasikan karena saya belum mencoba database yang baru.

Berikut adalah code-nya yang bisa diletakkan pada modul :

Public con As New ADODB.Connection
Public rst As New ADODB.Recordset ‘berfungsi sebagai variabel penyimpan sementara record
Public strcon As String ‘ variabel untuk code koneksi
Public strsql As String ‘ variabel untuk menampung code atau query sql

Public Sub Connections()
strcon = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test”
If con.State = adStateOpen Then
con.Close
Set con = New ADODB.Connection
con.Open strcon
Else
con.Open strcon
End If
End Sub

Sama seperti koneksi pada ms. access, inti dari koneksi ini adalah pada variabel strcon
“strcon = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test””

Pada bagian akhir code tersebut yaitu “Initial Catalog=test”, test merupakan nama database yang telah dibuat pada sql server pada code ini saya memberikan contoh nama databasenya “test”. Sehingga perlu disesuaikan dengan nama database yang digunakan.

Sebelum mencoba untuk mengkoneksikan, pastikan terlebih dahulu bahwa Servis Manager sql server sudah berada dalam kondisi Running, bila belum maka harus diaktifkan terlebih dahulu.

Untuk pemanggilan atau penggunaanya bisa dibaca pada posting saya sebelumnya.

Semoga berguna ya…………………

Membuat Paket File Instalasi


Untuk membuat paket file instalasi dibutuhkan beberapa langkah sbb:

  1. Pastikan program yang kita buat sudah tidak terdapat kesalahan

  2. Buatlah file exe-nya dengan memilih file >> Make (Project Name) exe…
  3. Masuklah ke menu Add-Ins

  4. Pada kolom Available Add-Ins carilah Package and Deployment Wizard
  5. Pada bagian Load Behavior beri tanda centang pada Loaded/Unloaded dan Load on Startup >> OK.

  6. Maka pada menu Add-Ins akan muncul menu baru yaitu Package and Deployment Wizard pilihlah menu ini untuk langkah selanjutnya.
  7. Pada window yang muncul pilihlah Package

  8. Apabila muncul permintaan untuk mengkompile ulang pilihlah perintah Yes. Apabila proses kompile gagal, itu berarti program yang dibuat masih memiliki kesalahan.

  9. Langkah selanjutnya kita bisa langsung memilih Next hingga muncul jendela Package folder. Pada bagian ini pilihlah letak tempat penyimpanan hasil paketan kemudian Next.

  10. Apabila muncul jendela Missing Dependency Information kita bisa melewati bagian ini dan langsung memilih OK.
  11. Langkah selanjutnya adalah munculnya jendela Included Files, apabila anda menggunakan database access maka pilihlah Add dan carilah database anda. Apabila file tidak ditemukan pada jendela Add File, ubahlah files of type menjadi All Files (*.*).

  12. Sebelum memilih Next perhatikan terlebih dahulu Name dari File, hilangkan tanda centang pada file msado25.tlb. Pengalaman saya bila file ini tidak dihilangkan maka pada saat proses instalasi akan muncul pesan kesalahan yang bila kita Ignore maka tidak akan mempengaruhi aplikasi kita.
  13. Pada jendela selanjutnya ada dua pilihan yaitu Single Cap dan Multiple Caps, apabila dipilih Single Cap maka file-file aplikasi akan dibuat dalam satu file, namun bila kita memilih Multiple Caps kita bisa membagi file-file instalasi menjadi beberapa file sebesar Cap size, lalu Next

  14. Pada bagian Installation Title isilah kata-kata yang biasanya merupakan nama dari aplikasi yang kita buat, dan akan muncul sebagai latarbelakang pada saat proses instalasi.
  15. Pada langkah selanjutnya merupakan pengaturan tata letak shortcut pada start menu kita bisa mengubah tata letak dan namanya atau kita bisa langsung klik Next.

  16. Langkah selanjutnya kita bisa langsung klik Next juga pada bagian Shared files di langkah selanjutnya.

  17. Finish

  18. Pada akhir proses paket ada laporan yang bisa kita sompan atau bisa juga diabaikan.

  19. Cobalah melakukan instalasi dan cobalah.

CommandButton Abjad

CommandButton Abjad
Untuk membuat tombol yang berurutan dari A hingga Z, bila kita melakukannya secara manual, berarti kita harus membuat 25 buah command button dengan caption yang berbeda, tentu hal ini akan membutuhkan waktu. Maka disini akan saya berikan cara membuat deretan command button dari A hingga Z dengan menggunakan kode program.

Langkah-langkanya sebagai berikut:

1. Buatlah sebuah commandbutton pada form dengan memberikan properti index dengan nilai “0” dan caption “A”.
2. Ketikkan kode berikut pada procedure Form_Load

For i = 1 To 25
Load Command1(i)
Command1(i).Left = Command1(i – 1).Left + Command1(0).Width
Command1(i).Caption = Chr(vbKeyA + i)

Next i

Dalam program ini kita memanfaatkan perulangan For…Next yang digunakan untuk membuat tombol-tombolnya. Perulangan dilakukan sebanyak 25 karena jumlah abjadnya ada 26 kita kurangi 1 karena sudah kita buat secara manual.
Perintah “Load Command1(i)” berfungsi untuk memuat atau membuat commandbutton selanjutnya dengan property name Command dan dengan index “i”.
Langkah selanjutnya program akan mengatur property Left pada tombol yang baru berdasarkan jarak kiri commandbutton sebelumnya ditambahkan dengan nilai property Width commandbutton sebelumnya.
Untuk memberikan nilai caption-nya kta menggunakan fungsi Chr dengan parameter nilai ASCII dari A (vbKeyA) ditambah dengan nilai “i”.
Bila kita selesai sampai disini maka tombol yang kita buat belum bisa tampil pada saat program kita run, sehingga kita perlu mengatur nilai visible-nya menjadi true. Untuk itu tambahkan kode berikut sebelum perintah “Next i”.

Command1(i).Visible = True

Marquee Form Caption


Ini ada sebuah tip menarik untuk mempercantik tampilan aplikasi yang kita buat. Dimana caption dari form yang kita gunakan akan berjalan dari kanan kekiri secara terus menerus.

Jika anda berfikir kode yang digunakan akan ribet dan banyak, maka tidak demikian, kode yang digunakan sangat sederhana karena hanya melibatkan beberapa fungsi dasar saja diantaranya fungsi Left yang digunakian untuk mendapatkan karakter dari sebelah kiri, lau ada fungsi Right yang berfungsi untuk mencari karakter yang dimulai dari sebelah kanan serta fungsi Len yang dipakai untuk mendapatkan panjang karakter.

Kontrol yang digunakan juga menggunakan kontrol standar dari visual basic 6.0 yaitu satu buah kontrol timer yang intervalnya kita set menjadi 100 atau bisa kita ganti sesuai keinginan kita.

Kalo mau mencoba silahkan ketikkan kode berikut:

Private Sub Form_Load()
Form1.Caption = ” [ Belajar VB 6.0 ] ”
End Sub

Private Sub Timer1_Timer()
a = Left(Form1.Caption, 1)
b = Len(Form1.Caption)
c = Right(Form1.Caption, b – 1)
Form1.Caption = c + a
End Sub

Sederhana kan ???

Perintah DOS pada Visual Basic 6.0


Terkadang kita ingin menggunakan perintah yang ada pada dos untuk melakukan sebuah kondisi, ni aku bagi caranya gampangnya, hanya beberapa baris aja kok gak panjang :

Sebelumnya siapkan sebuah form dengan satu buah command button, trus ketik code berikut:

Private sub command1_click()

sYourCommand=”copy C:\vb.txt D:\vb.txt”
shell “cmd \c ” & sYourCommand

End Sub

Dah cuma gitu aja code-nya.
Variabel sYourCommand adalah perintah dos yang ingin kita lakukan, pada code di atas dicontohkan kita akan menyalin file vb.txt pada C: ke D:, perintah ini bisa kita ganti dengan perintah dos yang lainnya.

Pada baris bawahnya kita menggunakan “Shell” yang berfungsi untuk memanggil aplikasi yang ada, disini kita memanggil aplikasi commnad promt, untuk memasukkan perintah dos kita menggunakan tambahan ” \c ” lalu kita tambahkan string tersebut dengan perintah dos yan telah kita simpan pada variabel sYourCommand.

Mencari TextBox Kosong Dengan Perulangan

Untuk mengetahui textbox sudah diisi atau belum bisa dilakukan dengan beberapa cara, antara lain dengan menggunakan perintah “IF…THEN”, namun bila kita menggunakan perintah ini kita diharuskan menulis code program yang cukup banyak, dan itu menjadi tidak efektif.

Ada cara lain yang menurut saya lebih efektif ketimbang kita menggunakan perintah “IF” yaitu dengan memanfaatkan perintah perulangan, perulangan yang saya maksud disini adalah perulangan dengan menggunakan “FOR …. NEXT”

Berikut adalah perintahnya yang saya masukkan ke dalam sebuh presedur:

Private Sub CekTextBoxKosong()
Dim ctrAs Control

For Each ctr In Me.Controls
If TypeOf ctr Is TextBox Then
If ctr.Text= vbNullString Then
MsgBox “Textbox ini kosong”

ctr.SetFocus

Exit Sub

End If
End If
Next ctr

End Sub

Berikut ini penjelasan ringkas tentang code di atas:

Perulangan dilakukan terhadap variabel ctr dimana ctradalah sebuah kontrol yang terdapat pada form dimana code ini ditulis ( In Me.Controls).

Kemudian jika tipe dari ctr adalah textbox maka proram akan mengecek apakah ctr(TextBox) ada isinya atau tidak, jika masih kosong yang dalam visual basic kita bisa menggunakan vbNullString maka akan muncul kotak pesan dan akan langsung mengeset focus ke textbox yang kosong tersebut dan akan langsung menghentikan prosedur ini dengan perintah Exit Sub.

Dan perulangan akan terus berlanjut dengan adanya perintah Next.