26 December 2008

Berpindah Antar Kontrol Dengan Enter

Secara default untuk berpindah antar kontrol di vb kita bisa menggunakan tombol Tab yang sebelumnya tiap kontrol sudah kita atur properti TabIndex-nya. Namun kita juga bisa melakukannya dengan menggunakan tombol enter dimana kita akan menggunakan fungsi SendKeys.

Untuk menggunakan cara ini kita bisa menempatkan kodenya pada Event KeyPress pada tiap kontrol yang kita inginkan, misalnya pada textbox. Berikut ini adalah contoh kodenya:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub

Pada kode ini kita pastikan terlebih dahulu bahwa pengguna menekan tombol enter dimana tombol enter nilai ASCII-nya adalah 13. Setelah itu kita menggunakan fungsi SendKeys dimana kita mengirimkan nilai dari tombol Tab. Lalu nilai ASCII-nya kita kembalikan lagi menjadi 0.

Read more ...

22 November 2008

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.
Read more ...

17 July 2008

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 ???
Read more ...

10 July 2008

Tampilan Warna Warni

Terkadang kita merasa bosan bila melihat aplikasi yang isinya hanya ada dua warna, hitam dan putih, maka kita harus punya cara yang kreatif agar tampilan aplikasi yang kita buat lebih terlihat bervariatif. Salah satu caranya adalah dengan membuat label yang warna tulisan dan background nya berubah-ubah alias warna warni.

Dalam visual basic telah tersedia sebuah fungsi yang bernama RGB singkatan dari RED GREEN BLUE yang berfungsi untuk mengatur intensitas warna merah, hijau dan biru pada suatu objek. Bentuk umum dari fungsi ini adalah RGB(Red As Integer, Green As Integer, Blue As Integer ).

Sebagai contoh kita bisa memasukkan RGB(255,0,0) untuk menampilkan warna merah. Angka 255 pada fungsi tadi dimaksudkan untuk mendapatkan warna merah yang maksimum, bila kita kurangi nilainya maka warna merahnya akan semakin tua. Kita juga bisa membuat gradasi warna yang lain yang kita inginkan.

Untuk membuat sebuah label atau background atau properti warna yang lain pada sebuah kontrol maka kita bisa memanfaatkan statement Randomize (Rnd) yang berfungsi untuk mengacak intensitas warna.
Mari kita coba membuat sebuah aplikasi dengan memanfaatkan fungsi RGB dan statement Rnd. Kontrol yang kita butuhkan adalah sebuah label dan sebuah Timer dengan interval 100. Lalu cobalah ketikkan kode berikut ini dan mainkan programmu. :


Private Sub Timer1_Timer()

Label1.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

End Sub

Kalau malas mengetikkan kodenya, bisa diambil contohnya disini. Read more ...

Mencari ASCII Sebuah Tombol

KEYASCII dari suatu tombol penting untuk kita ketahui bila kita sering menggunakan event keypress dari suatu kontrol. Namun untuk dapat menghafal semua ASCII dari tiap tombol pada keyboard lumayan sulit mengingat cukup banyaknya tombol. Lalu bagaimana cara membuat sebuah program aplikasi dari visual basic 6 untuk mengtahui nilai ASCII dari sebuah tombol.

Berikut ini ada sebuah aplikasi sederhana untuk mengetahui nilai ASCII pada tombol keyboard yang kita tekan dengan memanfaatkan event keypress.

Buatlah sebuah project baru dengan menambahkan sebuah kontrol. Kemudian ketikkan kode berikut :


Private Sub Text1_KeyPress(KeyAscii As Integer)

MsgBox "Nilai ASCII dari tombol yang anda tekan adalah " & KeyAscii

End Sub


Cara kerja dari program diatas sangat sederhana, yaotu kita cukup menekan sebuah tombol atau gabungan dengan tombol Shift maka akan muncul sebuah Message box yang menampilkan nilai ASCII-nya.

Sebagai catatan, tidak semua tombol dapat kita tampilkan KEYASCII-nya misalnya tombol anak panah, Shift, CTRL, dll.
Read more ...

19 June 2008

Mencari Selisih Tanggal

Untuk mencari selisih dari dua buah tanggal tidaklah sulit, karena dalam visual basic telah disediakan fasilitas untuk melakukan hal tersebut dengan menggunakan fungsi " datediff ", yaitu sebuah fungsi yang digunakan untuk mendapatkan selisih dari dua buah tanggal. Dari fungsi dafediff kita bisa mendapatkan selisih hari, bulan dan tahun dari dua buah tanggal.

Cara penggunaan dari fungsi ini adalah sbb:

dim hari, bulan, tahun

'Untuk mencari selisih hari
hari=DateTime.DateDiff("d", CDate(Text1.Text), CDate(Text2.Text))

'Untuk mencari selisih bulan
bulan = DateTime.DateDiff("m", CDate(Text1.Text), CDate(Text2.Text))

'Untuk mencari selisih tahun
tahun = DateTime.DateDiff("yyyy", CDate(Text1.Text), CDate(Text2.Text))


Dalam contoh code diatas yang membedakan dari tiap kegunaannya adalah fungsi "d,m dan yyyy", dimana ketiganya mewakili untuk hari atau day (d), bulan atau month (m).

Dalam kode diatas, terdapat satu fungsi yang berfungsi untuk meng convert mengubah tipe data dari string ke tipe tanggal, yaitu fungsi CDate .

Kode diatas dapat kita letakkan pada prosedur command_click atau bisa juga diletakkan pada tempat lain.
Read more ...

06 June 2008

Select TextBox

Terkadang kalau melakukan validasi data pada textbox, maka kita sering sekali menggunakan perintah " textbox.setfocus " untuk membuat textbox mendapatkan fokus sehingga kursor langsung menuju ke textbox tersebut. Namun cara ini menurut saya kurang asik, karena pengguna harus menghapus terlebih dahulu kata-kata yang berada dalam textbox tersebut, sehingga menjadi tidak efektif.

Ada salah satu cara, yaitu dengan memblok atau menyeleksi semua isi dari textbox sehingga bila user ingin mengganti data yang di-inputkan maka user tidak perlu menghapus terlebih dahulu, namun bisa langsung memasukkan data yang baru. berikut contoh code -nya:

Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
End Sub

Untuk membuat text terpilih semuanya maka kita dapat meletakkan code kita pada event GotFocus pada textbox. Event ini berfungsi saat componen yang kita mendapatkan fokus atau pada saat kursor berada pada komponen ini, dalam hal ini komponen yang kita gunakan adalah textbox.

Pada properti SelStart nilai value kita set dengan nilai 0 berarti text yang kita pilih dimulai dari depan, kalau pengen dicobain, nilai ini bisa diubah menjadi 1 atau 2 atau berapapun asalkan tidak lebih dari jumlah karakter yang kita masukkan, dan bisa dilihat perpedaannya.

Kemudian pada baris kedua adalah panjang atau lebar sel atau text yang akan diseleksi, pada code ini kita set nilainya dengan menggunakan perintah Len , yang berfungsi untuk mengetahui banyaknya karakter pada textbox1, sehingga program kita akan lebih dinamis, bayangkan saja bila nilainya kita set menjadi nilai tertentu misalnya 10, maka yang terjadi adalah bila user memasukkan karakter lebih dari 10 maka data pada textbox tidak akan terseleksi semua.

Selamat Berexperimen
Read more ...

11 May 2008

Membatasi Fungsi Keyboard

Saat membuat sebuah aplikasi dengan berbasiskan database salah satu hal yang sangat penting untuk diperhatikan adalah validasi data. Apa yang terjadi bila tipe data yang diinputkan oleh user ternyata tidak cocok dengan tipe data yang telah diberikan pada database ? Tentunya akan terjadi kesalahan karena tipe data tidak valid.

Untuk validasi nilai angka dan huruf saja mungkin tidaklah sulit kita bias menggunakan perintah “isnumeric” untuk validasi angka dan “not isnumeric” untuk validasi karakter huruf. Namun cara ini saya nilai tidaklah efektif karena apabila dalam satu textbox yang kita validasi berisi gabungan dari huruf dan angka maka validasi yang kita gunakan menjadi tidak berguna.

Berikut ini saya berikan cara untuk membatasi inputan dari user sesuai dengan karakter yang kita inginkan :


Private Sub text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then
MsgBox “Anda baru menekan tombol Enter”
End If

If InStr("0123456789,", Chr(KeyAscii)) = 0 Then
If KeyAscii <> vbKeyBack Then
KeyAscii = 0
End If
End If

End Sub

Fungsi yang saya gunakan untuk membatasi input dari user adalah perintah InStr. Dengan perintah ini maka user hanya dapat menekan tombol-tombol pada keyboard sesuai dengan yang kita izinkan, pada contoh saya diatas, saya hanya mengizinkan atau mengaktifkan tombol “0123456789,” pada keyboard yang telah memiliki nilai ACSII tersendiri. Apabila user mengetikkan selain “0123456789,” maka aplikasi tidak akan merespon dan tidak akan ditampilkan pada textbox. Lalu bagaimana bila kita hanya boleh mengizinkan user untuk memasukkan huruf kecil saja maka kita bias mengganti code tadi menjadi :

InStr("abcde s.d. z", Chr(KeyAscii)) = 0

Dan berlaku untuk karakter lainnya.
Lalu apa fungsi dari code dibawahnya :

If KeyAscii <> vbKeyBack Then
KeyAscii = 0
End If

Code ini untuk mengizinkan user menggunakan tombol Backspace (vbKeyBack) untuk memperbaiki data yang ditelah dimasukkan.
Kelebihan dari code ini adalah untuk mencegah user usil dengan memasukkan code tertentu yang bisa digunakan untuk membobol database yang ada. Terutama bila menggunakan login yang datanya diambil dari database.
Read more ...

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.



Read more ...

02 May 2008

Visual Basic ? Apaan Sih ?

Apa sih visual basic itu ??

Visual Basic atau yang lebih dikenal dengan VB merupakan bahasa pemrograman yang menawarkan IDE ( Integrated Development Environment ) yang bertujuan untuk menfasilitasi pembangun perangkat lunak dengan utilitas yang diperlukan.

Visual Basic merupakan turunan dari bahasa basic. Basic yang singkatan dari Beginners’ All-purpose Symbolic Instruction Code yang merupakan salah satu bahasa tingkat tinggi dan sebenarnya tidak bisa disebut sebagai bahasa pemula karena bahasa basic juga digunakan oleh senior-senior atau pemrogram ahli.

Pada visual basic ditawarkan akses ke basis data menggunakan Data Access Objects(DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO) dan dapat melibatkan banyak basis data mulai dari Oracle, Sql Server, Access dan MySql, serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX dan masih banyak lagi keunggulan yang lain.

"Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Dalam sebuah survey yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java."(Wikimedia.org)
Read more ...

13 April 2008

Pencegahan Error Dengan Membatasi Tindakan Pengguna

Sebagai seorang pembuat program yang baik. Kita harus dapat memikirkan segala tindakan yang mungkin dilakukan oleh pengguna aplikasi kita dan kemudian mencegah hal-hal yang tidak boleh dilakukan agar error program dapat dicegah.

Ada beberapa cara sederhana yang dapat dilakukan untuk mencegah pengguna melakukan kesalahan dalam menggunakan aplikasi salah satunya adalah dengan membatasi tindakan pengguna.

Untuk dapat membatasi tindakan pengguna maka dapat dilakukan dengan menjaga agar tindakan yang dilakukan pengguna benar-benar aman walaupun terkesan dipaksakan. Contoh kasus, pada saat pengguna akan menambah data dengan menekan tombol Tambah lalu menuliskan data yang baru. Bagaimana bila sebelum pengguna belum menekan tombol Simpan dan langsung menekan tombol navigasi ? Untuk mencegah hal tersebut maka kita dapat mengatur propertis enable pada tombol navigasi. Contoh kode program untuk mengaktifkan dan menonaktifkan tombol navigasi :

Private Sub cmdNavigasi(status As Boolean)

cmdFirst.Enabled = status

cmdLast.Enabled = status

cmdNext.Enabled = status

cmdPre.Enabled = status
End Sub

Private Sub cmdTambah_Click()

Call cmdNavigasi(False) ‘---Menonaktifkan tombol navigasi
End Sub

Private Sub cmdSimpan_Click()

Call cmdNavigasi(True) ‘---Mengaktifkan tombol navigasi
End Sub

Tindakan lain yang perlu diwaspadai adalah bila pengguna tanpa sengaja menekan tombol Hapus, maka kita harus membuat sebuah konfirmasi sebelum data benar-benar dihapus.

Selain itu untuk membatasi tindakan penguna dapat dilakukan dengan mengunci textbox sehingga pengguna tidak dapat melakukan perubahan. Misalnya kita tidak ingin pengguna merubah kode tetapi kita juga tidak ingin menggunakan kontrol label sebab kadang kita juga ingin menambah data baru. Oleh karena itu kita dapat mencegahnya dengan melakukan penguncian pada textbox yang kita inginkan dengan mengatur properti Locked-nya menjadi True atau False untuk sebaliknya.

Agar kesalahan pada database dapat dihindari kita juga bisa membatasi jumlah karakter yang boleh dimasukkan oleh pengguna dengan mengatur properti maxlength-nya menjadi lebar data pada database misalnya pada database lebar data adalah 5 karakter maka properti textbox-nya kita set menjadi 5 yang default-nya adalah 0.

Kesalahan lain yang dapat terjadi adalah pada tipe data yang berbeda dan pengaturan Null atau data boleh kosong dan Not Null atau data tidak boleh dikosongkan, misalnya pada database tipe datanya adalah int(integer) maka pengguna tidak boleh memasukkan unsur huruf didalamnya. Untuk mencegah hal tersebut maka dibutuhkan sebuah validasi data untuk mengecek apakah data yang dimasukkan sudah sesuai dengan ketentuan database yang diharapkan. Contoh kode programnya adalah sebagai berikut :

Private Sub cmdSimpan_Click()

If txtKode.Text = “” Then ‘---input kosong

MsgBox "Data tidak boleh kosong", vbExclamation + vbOKOnly,"Sistem Error"

txtKode.SetFocus

ElseIf Not IsNumeric(txtKode.Text) Then ‘---input bukan angka

MsgBox "Data tidak boleh kosong", vbExclamation + vbOKOnly, "Sistem Error"

txtKode.SetFocus

Else

Call simpan_data

End If
End Sub
Read more ...

19 February 2008

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.....................
Read more ...

17 February 2008

Pembuatan Modul Pada VB 6.0 dan Pengaplikasiannya

Untuk membuat sebuah modul, sama aja seperti kita mau menambahkan sebuah form ke aplikasi kita, tapi yang kita tambahkan bukan form tapi modul.

Kalo saya biasanya menggunakan modul buat prosedur2 yang akan saya pake di hampir semua form yang saya gunakan jadi dari pada saya buat prosedur yang sama maka saja buat di modul. Tapi gak harus di modul juga bisa, misalnya di sebuah form tapi dibagian depannya kita ganti biasanya "Private Sub Nama prosedur" kita ganti menjadi "Public sub Nama Prosedur". Public disini berarti prosedur yang kita buat bisa dipake disemua form yang ada di aplikasi kita.

Trus cara pemanggilannya juga gampang banget kok. Klo prosedurnya diletakkan di modul maka pemanggilannya "Call Nama prosedur", fungsi "call" berfungsi untuk memanggil prosedur yang sudah kita buat. Tapi kalo prosedurnya kita letakkan di form maka pemanggilannya agak berbeda, tapi tetap menggunakan fungsi "Call", menjadi "Call (nama form letak prosedur).(nama prosedur). Semua prosedur atau metode dan fungsi juga sama dalam pemanggilannya dengan menggunakan call dan pembuatannya didahului dengan kata "Public", klo sub prosedur ya menjadi Public Sub nama prosedur, kalo fungsi ya menjadi "public Function".
Semoga bermanfaat.
Read more ...

19 January 2008

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.

Read more ...

03 January 2008

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.




Read more ...
 
>