Showing posts with label visual Basic. Show all posts
Showing posts with label visual Basic. Show all posts

Memainkan File Suara dengan VB 6.0

22 February 2010

Dengan menggunakan visual basic kita bisa memainkan sebuah file suara dalam kasus ini saya akan memainkan sebuah file dengan extensi (*.wav).
Disini saya tidak menggunakan komponen Microsoft MultiMedia Control (MMC) ataupun Windows Media Player (WMP) melainkan menggunakan fungsi windows api yang bernama sndPlaySound.
Parameter-parameter dari fungsi windows api sndPlaySound diantaranya yaitu :
- lpszSoundName --> nama file audio .wav atau yang lainnya untuk dijalankan
- uFlags --> nilai spesifikasi flag bagaimana file audio tersebut dijalankan diantaranya :
        1. SND_ALIAS=&H10000
            menjalankan default windows sound (termasuk SystemStart, Asterisk, dll)
        2. SND_ASYNC=&H1
            melanjutkan eksekusi program setelah memulai menjalankan sound
        3. SND_FILENAME=&H20000
            menjalankan sesuai dengan nama file yang dispesifikasikan
        4. SND_LOOP=&H8
            mengulang menjalankan file audio sampai fungsi sndPlaySound dipanggil kembali
            dengan parameter lpszSoundName diisi dengan kosong (""). SND_ASYNC
            juga harus diset ulang
        5. SND_NODEFAULT=&H2
            tidak menjalankan sound windows default jika file yang dispesifikasikan tidak
            ditemukan
        6. SND_NOSTOP=&H10
            menjalankan file audio sampai akhir dari file
        7. SND_NOWAIT=&H2000
            tidak menunggu jika driver sound sedang sibuk
        8. SND_SYNC=&H0
            menunggu sampai file audio selesai dijalankan sebelum melanjutkan
            perintah berikutnya

Cukup dengan parameternya kita beralih ke projectnya.
siapkan sebuah form yang didalamnya terdapat sebuah Command Button dan juga siapkan sebuah module.
Disini kita akan mencoba memainkan sebuah file wav yang letaknya di folder c:\windows\media

Ketikan listing berikut pada module dan simpan dengan nama mdlsndparam :
Public Const SND_ALIAS = &H10000
Public Const SND_ASYNC = &H1
Public   Const SND_FILENAME = &H20000
Public Const SND_LOOP = &H8
Public   Const SND_NODEFAULT = &H2
Public Const SND_NOSTOP = &H10
Public   Const SND_NOWAIT = &H2000
Public Const SND_SYNC = &H0


Declare   Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal   lpszSoundName As String, ByVal uFlags As Long) As Long
Kemudian pada object Command Button di form ketikan listing berikut :
Private Sub Command1_Click()
Dim x As Byte
x =   sndPlaySound("c:\windows\media\ding.wav", SND_ALIAS or SND_SYNC)
If x   = 0 Then
MsgBox "Error : Sound tidak bisa dijalankan..."
End If
End   Sub
Silahkan kembangkan sendiri listing diatas sesuai kebutuhan anda.
Semoga membantu.
READ MORE - Memainkan File Suara dengan VB 6.0

Windows Tick Count Menggunakan VB 6.0

Project kali ini adalah membuat program Windows Tick Count Menggunakan VB 6.0
Windows Tick Count berguna untuk menghitung lamanya waktu sejak sistem operasi windows dijalankan.
Untuk mengetahuinya kita bisa menggunakan fungsi windows api yang bernama GetTickCount.
Fungsi ini akan mengembalikan nilai waktu dalam satuan milidetik.
Fungsi ini juga yang menggantikan fungsi versi 16bit yaitu GetCurrentTime.

OK lets start to create the project....
Buat sebuah project baru dan tambahkan sebuah form yang didalamnya terdapat sebuah objek listbox, timer dan juga buatlah sebuah module baru.

Tuliskan listing berikut pada module dan simpan dengan nama mdltick :
Public Declare Function GetTickCount Lib "kernel32" () As Long
Pada object timer di form ketikan listing berikut :
Private Sub Timer1_Timer()
Dim Time As Long
Dim detik As Long
Dim menit As Long
Dim jam As Long


Time = GetTickCount()
detik = Time / 1000
menit = detik / 60
jam = menit / 60


List1.Clear
List1.AddItem ("GetTickCount() = " & vbTab & Time & "   millisecond")
List1.AddItem ("")
List1.AddItem (jam & vbTab & "Jam")
List1.AddItem (menit & vbTab & "Menit")
List1.AddItem (detik & vbTab & "Detik")
End Sub
Jangan lupa set interval untuk timer pada object propertiesnya dengan nilai 100 (1 detik).
Selamat mencoba...
READ MORE - Windows Tick Count Menggunakan VB 6.0

Chypertext Encryption With Subtitution Method In VB 6.0

Teknik enkripsi chypertext dengan menggunakan metode subtitution sebenarnya hanya sebuah metode sederhana yaitu hanya menaikan atau menurunkan nilai ascii saja.
Dengan menggunakan visual basic (vb 6.0) kita akan membuat sebuah program sederhana mengenai masalah enkripsi dengan menggunakan metode subtitution.


siapkanlah sebuah modul simpan dengan nama mdlchyper. kemudian ketikan script code dibawah ini :
Option Explicit


Public Function Encrypt(ByVal TextInput As String) As String
Dim NewLen As Integer
Dim NewTextInput As String
Dim NewChar As String
Dim i As Integer
NewChar = ""
NewLen = Len(TextInput)
For i = 1 To NewLen
NewChar = Mid(TextInput, i, 1)
Select Case Asc(NewChar)
Case 65 To 90
NewChar = Chr(Asc(NewChar) + 127)
Case 97 To 122
NewChar = Chr(Asc(NewChar) + 121)
Case 48 To 57
NewChar = Chr(Asc(NewChar) + 196)
Case 32
NewChar = Chr(32)
End Select
NewTextInput = NewTextInput + NewChar
Next
Encrypt = NewTextInput
End Function


Public Function Decrypt(ByVal TextInput As String) As String
Dim NewLen As Integer
Dim NewTextInput As String
Dim NewChar As String
Dim i As Integer
NewChar = ""
NewLen = Len(TextInput)
For i = 1 To NewLen
NewChar = Mid(TextInput, i, 1)
Select Case Asc(NewChar)
Case 192 To 217
NewChar = Chr(Asc(NewChar) - 127)
Case 218 To 243
NewChar = Chr(Asc(NewChar) - 121)
Case 244 To 253
NewChar = Chr(Asc(NewChar) - 196)
Case 32
NewChar = Chr(32)
End Select
NewTextInput = NewTextInput + NewChar
Next
Decrypt = NewTextInput
End Function
kalau sudah buatlah sebuah form dengan nama frmenkripsi kemudian siapkan 2 buah text box pada form lalu pada textbox 1 ketikan listing berikut :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.Text = Encrypt(Text1.Text)
End If
End Sub
jalankan program dengan menekan tombol F5 kemudian isikan sebuah kata pada textboxt pertama lalu tekan Enter. nah nanti hasil enkripsi akan muncul pada textbox yang kedua..
well selamat mencoba....
READ MORE - Chypertext Encryption With Subtitution Method In VB 6.0

Kode Kesalahan Windows API Part I

18 February 2010

Secara singkat windows api (application programming interface) merupakan sekumpulan fungsi-fungsi eksternal yang terdapat dalam file-file perpustakaan windows (library windows) atau file library lainnya yang dapat digunakan oleh program.

Untuk lebih jelasnya mengenai pengertian windows api dapat anda baca disini. Bagi anda yang hendak mempelajari windows api menggunakan visual basic ada baiknya jika anda mempelajari terlebih dahulu mengenai kode kesalahan windows api.

Kode kesalahan adalah nilai yang diidentifikasi dari nilai yang dihasilkan oleh fungsi windows api. Dipakai dengan memanggil fungsi GetLastError setelah pemanggilan fungsi. Nah dibawah ini tabel kode kesalahan dalam windows api, namun karena sangat banyaknya kode-kode kesalahan tersebut maka disini saya akan menuliskan kode kesalahan dimulai dari kode 0 sampai dengan kode 200 terlebih dahulu.

Kode       Deskripsi
0              Tidak ada kesalahan atau berhasil
1              Penggunaan fungsi salah
2              File tidak ditemukan
3              Path tidak ditemukan
4              Tidak bisa membuka file - terlalu banyak file yang dibuka
5              Akses ditolak
6              Kesalahan penggunaan handle
7              Blok kontrol penyimpanan rusak
8              Memori tidak cukup/kurang
9              Kesalahan pada alamat kontrol blok penyimpanan
10            Kesalahan atau environment tidak tepat
11            Kesalahan pada format program untuk dimuat
12            Kesalahan kode akses
13            Kesalahan pada data
14            Memori tidak cukup atau kurang
15            Kesalahan pada drive yang dispesifikasikan
16            Direktori tidak bisa dibuang
17            Tidak bisa memindahkan file ke drive yang berbeda
18            Tidak terdapat file
19            Disk diproteksi
20            Tidak bisa menemukan peranti (device)
21            Peranti tidak siap
22            Perintah untuk peranti tidak dikenal
23            Data CRC (Cyclic Redundance Check) rusak
24            Kesalahan pada ukuran panjang perintah
25            Tidak ditemukan area atau track dalam disk
26            Disk tidak bisa diakses
27            Tidak bisa menemukan permintaan lokasi sektor
28            Kertas dalam printer kosong
30            Tidak bisa membaca dari drive yang dispesifikasikan
31            Peranti tidak berfungsi
32            Tidak dapat mengakses file, file sudah digunakan
33            Tidak dapat mengakses file, file terkunci
34            Kesalahan pada pendefinisian disk dalam drive
36            Terlalu banyak file yang di-share
38            Akhir dari file (End of file)
39            Disk penuh
50            Permintaan terhadap jaringan tidak tersedia atau tidak ada
51            Komputer remote tidak tersedia atau tidak ada
52            Penamaan ganda dalam jaringan
53            Path tidak ditemukan
54            Jaringan sibuk
55            Sumber jaringan atau peranti tidak tersedia
56            Telalu banyak perintah dalam jaringan dengan menggunakan BIOS
57            Kartu (adapter) jaringan rusak
58            Server yang dispesifikasikan tidak dapat melakukan operasi permintaan
59            Kesalahan jaringan yang tidak diduga
60            Tidak kompatiblenya kartu jaringan (adapter remote)
61            Print queue penuh
62            Tidak ada ruang dalam server untuk menyimpan file spool untuk mencetak
63            File yang akan dicetak terhapus atau tidak ada
64            Spesifikasi nama jaringan tidak ditemukan atau tidak ada
65            Akses kedalam jaringan ditolak
66            Kesalahan pada tipe sumber jaringan
67            Nama jaringan tidak ditemukan
68            Terlalu banyak nama dalam jaringan
69            Jaringan dengan BIOS melebihi kapasitas
70            Server remote sedang dihentikan atau sedang dimulai kembali
71            Tidak diterimanya permintaan jaringan
72            Printer atau disk yang dispesifikasikan sedang dihentikan
80            File ditemukan
82            Tidak dapat membuat direktori atau file
83            Kesalahan pada interrupt 24 (INT 24)
84            Tidak cukupnya penyimpanan pada proses yang diminta
85            Nama peranti lokal sedang digunakan
86            Kesalahan pada password jaringan
87            Parameter salah
88            Kesalahan menulis dalam jaringan
89            Tidak dapat memulai proses lain pada saat ini
100          Tidak dapat membuat semapore lain, terlalu banyak yang digunakan
101          Mode exclusive semapore telah dimiliki
102          Semapore siap diset dan tidak bisa ditutup
103          Semapore tidak dapat diset lagi
104          Tidak dapat meminta kode exclusive semapore pada saat waktu interupsi
105          Penggunaan semapore diakhiri
106          Masukan disk
107          Alternatif disk tidak dimasukan
108          Disk terkunci atau sedang digunakan
109          Penggunaan pipe diakhiri
110          Tidak dapat membuka spesifikasi peranti atau file
111          Nama file terlalu panjang
112          Tidak cukup ruang dalam disk
113          Tidak ada file internal yang tersedia
114          Salah penunjukan tujuan pada file internal
117          Salah pemanggilan IOCTL
118          Kesalahan pada pemindahan parameter verify on write
119          Perintah tidak didukung atau tidak ada
120          Fungsi tersebut hanya ada dalam sistem operasi Windows NT
121          Waktu semapore telah habis
122          Tidak cukup pada buffer data
123          Salah nama file, nama direktori, atau volume label
124          Salah pada pemanggilan level system
125          Tidak ada volume lebel dalam disk
126          Spesifikasi modul tidak ditemukan
127          Spesifikasi prosedur tidak ditemukan
128          Tidak ada proses anak untuk tunggu
129          Aplikasi tidak dapat berjalan pada Windows NT
130          Handle file untuk membuka partisi disk tidak digunakan untuk I/O
131          File pointer dipindahkan sebelum awal dari file
132          Tidak dapat menset file pointer dalam spesifikasi pernati atau file
133          Tidak dapat di-JOIN atau SUBST dalam drive yang sudah digunakan
134          Tidak dapat di-JOIN atau SUBST dalam drive yang sudah digabung
135          Tidak dapat di-JOIN atau SUBST dalam drive yang sudah diganti
136          Tidak dapat dihapus dalam perintah JOINdari drive yang tidak dapat digabung
137          Tidak dapat menghapus SUBST dari drive yang tidak bisa dipindahkan
138          Drive tidak dapat di-JOIN kedalam direktori yang sudah di-JOIN sebelumnya
139          Drive tidak bisa diganti kedalam direktori yang sudah diganti
140          Drive tidak bisa di-JOIN kedalam direktori dalam drie yang sudah diganti
141          Drive tidak bisa diganti kedalam direktori dalam drive yang sudah di-JOIN
142          Tidak dapat di-JOIN atau SUBST, drive sedang sibuk
143          Drive tidak dapat di-JOIN atau SUBST kedalam direktori yang sama
144          Direktori tidak dalam subdirektoridari root direktori
145          Direktori belum kosong
146          Spesifikasi path dalam pergantian
147          Kekurangan sumber untuk di-JOIN atau diganti
148          Tidak dapat menggunakan spesifikasi path - status path sedang sibuk
149          Drive tidak bisa di-JOIN atau SUBST karena target telah di SUBST
150          Sistem tidak bisa di-trace atau tidak diperbolehkan dalam CONFIG.SYS
151          Kesalahan nomor dari spesifikasi event semapore
152          Teralu banyak semapore yang diset
153          Kesalahan daftar
154          Volume label terlalu panjang - potong menjadi 11 karakter
155          Tidak dapat membuat urutan lain
156          Proses penerimaan signal gagal
157          Segmen telah dibuang dan tidak bisa dikunci
158          Segmen telah dibuka
159          Kesalahan urutan penenal alamat
160          Kesalahan parameter string
161          Spesifikasi path salah
162          Tanda telah siap dipakai
164          Tidak terdapat urutan yang dapat dibuat
167          Tidak dapat mengunci file region
170          Permintaan sumber sedang sibuk
173          Mengunci permintaan tidak dapat ditambahkan
174          Perubahan atom kedalam tipe yang tidak didukung
180          Kesalahan nomor segmen
182          Tidak dapat menjalankan program - kesalahan nomor urutan
183          File telah ada
186          Kesalahan melewati flag
187          Spesifikasi semapore tidak dapat digunakan
188          Tidak dapat menjalankan program - kesalahan kode segmen
189          Tidak dapat menjalankan program - kesalahan stack segmen
190          Tidak dapat menjalankan program - kesalahan tipe modul
191          Tidak dapat menjalankan program didalam sistem operasi Windows NT
192          Tidak dapat menjalankan program - kesalahan file EXE
193          Kesalahan pada aplikasi Windows NT
194          Tidak dapat menjalankan program - mengulangi data melebihi 64k
195          Tidak dapat menjalankan program - kesalahan minimum pengalokasian ukuran
196          Tidak dapat menjalankan program - link dinamik dari ring yang salah
197          Sistem operasi tidak dapat mengkonfigurasi untuk menjalankan aplikasi
198          Tidak dapat menjalankan program - kesalahan segmen DPL
199          Tidak dapat menjalankan program - data segmen melebihi 64k
200          Kode segmen harus kurang dari 64k

yap sekian dulu nanti kita akan lanjutkan lagi pada posting berikutnya.
READ MORE - Kode Kesalahan Windows API Part I

Rounded Corner Form di VB 6.0

07 February 2010

Rounded Corner Form merupakan sebuah bentuk lengkungan di tepian form.
Jika pada properties form kita set borderstylenya menjadi None maka form hanya akan berbentuk kotak saja.
Untuk membuat lengkungan pada tepian form kita menggunakan beberapa fungsi windows api yaitu :
- SetWindowRgn
- CreateRoundRectRgn
- DeleteObject

Disini saya akan membuatnya dengan menggunakan visual basic6.0
langsung ke pembuatan projectnya saja...

Tulis listing berikut pada sebuah module :

Public Declare Function SetWindowRgn Lib _
"user32" (ByVal hwnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Declare Function CreateRoundRectRgn Lib _
"gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Public Sub buatoval(Frm As Form, Optional ByVal Kurva As Double = 15)
Dim hRgn As Long
Dim X1 As Long, Y1 As Long
X1 = Frm.Width / Screen.TwipsPerPixelX
Y1 = Frm.Height / Screen.TwipsPerPixelY
hRgn = CreateRoundRectRgn(0, 0, X1, Y1, Kurva, Kurva)
SetWindowRgn Frm.hwnd, hRgn, True
DeleteObject hRgn
End Sub
lihat pada bagian berikut :


Optional ByVal Kurva As Double = 15
Angka 15 dapat anda ganti sesuai keinginan anda nilai tersebut yang akan menentukan seberapa dalam lengkungan form yang ingin anda buat.

Nah terakhir agar pada saat form diload form memiliki lengkungan kita panggil didalam event Form_Loadnya, tulis listing berikut pada form:

Private Sub Form_Load()
buatoval me
End Sub
Nah sekarang form yang anda buat yang tidak menggunakan border tersebut sudah memiliki lengkungan di sisi-sisinya.
READ MORE - Rounded Corner Form di VB 6.0

Animasi Form dengan VB 6.0

05 February 2010

Dengan menggunakan visual basic 6.0 kita bisa membuat sebuah program memiliki animasi pada saat program tersebut diakhiri atau ditutup. Animasi tersebut diantaranya animasi form bergerak keatas, kebawah, kekanan serta kekiri.


Kita mulai dengan animasi form yang bergerak ke atas ketika ditutup.
Agar form bergerak ke atas pada saat ditutup maka kode akan ditulis pada sub QueryUnload ataupun Unload. Siapkanlah sebuah form dan buatlah listing kode berikut :

Private Sub Form_Unload(Cancel As Integer)
Do
DoEvents
Form1.Top = Trim(Str(Int(Form1.Top) - 5))
Loop Until Form1.Top < -Form1.Width
End Sub
Angka 5 bisa anda rubah sesuai kebutuhan anda contoh bila anda ingin agar form bergerak ke atas lebih cepat maka tambahkan nilainya pada Trim(Str(Int(Form1.Top) - 5)) menjadi 50 dan seterusnya.

Animasi yang berikutnya adalah animasi form bergerak ke bawah.
Sama seperti animasi sebelumnya siapkanlah sebuah form terlebih dahulu lalu buatlah listing kode berikut :

Private Sub Form_Unload(Cancel As Integer)
Do
Me.Top = Me.Top + 5
Me.Move Me.Left, Me.Top
DoEvents
Loop Until Me.Top > Screen.Height - 500
End Sub
Kalau kedua aniasi diatas adalah animasi form bergerak ke atas dan ke bawah, berikutnya adalah animasi agar form bergerak ke kiri atau ke kanan.
Dimulai dengan animasi form bergerak ke kanan, siapkanlah sebuah form kemudian buatlah listing kode berikut :

Private Sub Form_Unload(Cancel As Integer)
Do
Me.Left = Me.Left + 5
Me.Move Me.Left, Me.Top
DoEvents
Loop Until Me.Left > Screen.Width
End Sub
Nah yang terakhir animasi form bergerak ke kiri, siapkan sebuah form kemudian buatlah listing kode berikut :

Private Sub Form_Unload(Cancel As Integer)
Do
Me.Left = Me.Left - 5
Me.Move Me.Left, Me.Top
DoEvents
Loop Until Me.Left < -Screen.Width
End Sub
yupz... selesai sudah semuanya... selamat mencoba..
READ MORE - Animasi Form dengan VB 6.0

Cloning Buzz YM

Buzz merupakan salah satu fasilitas di YM yang akan membuat tampilan form bergerak dan mengeluarkan suara untuk mengingatkan seseorang teman chat anda di YM bahwa anda sedang chat dengannya tapi tidak dibalas-balas olehnya.
Disini saya akan membuat sebuah program sederhana yang fungsinya seperti buzz di ym menggunakan visual basic 6.0. Pada form yang dibutuhkan hanya sebuah komponen timer dan command button.

Tambahkan sebuah module kedalam project kemudian ketikan script dibawah ini ( copy paste aja deh klu ga mau susah (^^,) ) :

'fungsi windows api untuk memainkan file *.wav
Public Const SND_ALIAs = &H10000
Public Const SND_ASYNC = &H1
Public Const SND_FILENAME = &H20000
Public Const SND_LOOP = &H8
Public Const SND_NODEFAULT = &H2
Public Const SND_NOSTOP = &H10
Public Const SND_NOWAIT = &H2000
Public Const SND_SYNC = &H0
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uflags As Long) As Long
Pada formnya tambahkan 1 komponen command button, dan 1 buah komponen timer.
untuk command button rubah saja captionnya menjadi BUZZ dan untuk timer rubah intervalnya menjadi 10. k`lo udah copas lagi ajah script dibawah ini :

Option Explicit

Dim i As Integer
Dim l As Integer

Private Sub Command1_Click()
i = 1
l = 1
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Dim X As Byte
Select Case i
Case 1
Form1.Left = Form1.Left - 100
Case 2
Form1.Top = Form1.Top - 100
Case 3
Form1.Left = Form1.Left + 100
Case 4
Form1.Top = Form1.Top + 100
Case 5
Form1.Left = Form1.Left - 100
Case 6
Form1.Top = Form1.Top - 100
Case 7
Form1.Left = Form1.Left + 100
Case 8
Form1.Top = Form1.Top + 100

X = sndPlaySound(App.Path & "\BUZZ.wav", SND_ALIAs Or SND_SYNC)
i = 0

Timer1.Enabled = False
End Select
i = i + 1
End Sub

tinggal di running dengan menekan tombol F5. eeiiitttzzz.... tapi jangan lupa dulu siapin file wavnya.. copy ajah dari foldernya ym (^^,)...
selamat mencoba
READ MORE - Cloning Buzz YM

CRC Generator

28 January 2010

Dalam tutorial ini saya akan sedikit menuliskan bagaimana membuat sebuah CRC Generator agar kita bisa mendapatkan nilai CRC sebuah file dengan menggunakan visual basic 6.0.
Disini kita hanya membutuhkan sebuah form dan sebuah user control.

kita mulai dengan membuat sebuah project baru lalu tambahkanlah sebuah user control
Atur properti heightnya menjadi 360 kemudian widthnya menjadi 480 kemudian simpan dengan nama CRC
Lalu ketikanlah script berikut ini pada user control tersebut :

Option Explicit
Private crcTable(0 To 255) As Long

Private Sub UserControl_Initialize()
BuildTable
End Sub

Private Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long
Dim lCurPos As Long
Dim lTemp As Long
If lLen = 0 Then Exit Function
lTemp = lcrc Xor &HFFFFFFFF
For lCurPos = 0 To lLen
lTemp = (((lTemp And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))
Next lCurPos
CRC32 = lTemp Xor &HFFFFFFFF
DoEvents
End Function

Private Function BuildTable() As Boolean
Dim i As Long, x As Long, CRC As Long
Const Limit = &HEDB88320
For i = 0 To 255
CRC = i
For x = 0 To 7
If CRC And 1 Then
CRC = (((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor Limit
Else
CRC = ((CRC And &HFFFFFFFE) \ 2) And &H7FFFFFFF
End If
Next x
crcTable(i) = CRC
Next i
DoEvents
End Function

Public Function FromFile(SPathFile As String) As String
Dim b() As Byte, lcrc As Long
On Error Resume Next
If Len(SPathFile) = 0 Then Exit Function
Open SPathFile For Binary Access Read As #1
ReDim b(FileLen(SPathFile) - 1)
Get #1, , b
Close #1
lcrc = UBound(b())
lcrc = CRC32(b(), lcrc)
FromFile = Hex(lcrc)
DoEvents
End Function


Sekarang kita mulai mendesign tampilan formnya..
tambahkan sebuah form baru lalu designlah seperti gambar berikut ini :

Di form tersebut digunakan 5 buah objek yaitu label, textbox, command button, common dialog, crc ( user control yang sebelumnya telah dibuat). atur propertiesnya sesuai dengan gambar.
kalau sudah tambahkan script berikut ini pada form :

Private Sub cmdbrowse_Click()
On Error Resume Next
With cd
.Filter = "All Files (*.*) |*.*"
.ShowOpen
If Len(.FileName) = 0 Then Exit Sub
txtfilename.Text = .FileName
End With
End Sub

Private Sub cmdproses_Click()
txtcrc32.Text = CRC.FromFile(txtfilename.Text)
End Sub

Selamat mencoba
READ MORE - CRC Generator

Kalkulator Sederhana Dengan Visual Basic 6.0

11 September 2009

Jumpa lagi dengan saya... kali ini saya akan menuliskan bagaimana caranya membuat sebuah kalkulator sederhana dengan menggunakan visual basic 6.0.
Lho kenapa yang dibuat artikel kacangan dan basi seperti ini siy..??
Sabar bung.. saya sengaja menuliskan ini agar para pemula pun bisa mempelajari mengenai bahasa pemrograman visual basic dari dasar tentunya..
Karena para master sekalipun semuanya berasal dari pemula yang tidak tahu apa-apa.. jadi atas dasar itulah saya tetap menuliskan artikel ini..

Ok cukup basa-basinya buat yang sudah master saya sarankan segeralah berpindah dari halaman ini karena pastinya nanti anda akan bosan ketika membacanya :-)

Langkah pertama yang haus dilakukan dalam membuat sebuah program di visual basic adalah menjalankan program Visual Basic 6.0 kemudian apabila muncul kotak dialog New Project pilihlah tab New kemudian pilih Standard EXE kemudian klik Open, Namun bila kotak dialog New Project tidak muncul anda bisa melakukannya dengan memilih menu File -> New Project atau dengan menekan kombinasi Ctrl + N nah nanti akan muncul kotak dialog New Project kemudian pilihlah Standard EXE kemudian klik OK.

Langkah berikutnya adalah mendesign tampilan form.. Pada form yang tampil designlah tampilannya seperti gambar berikut ini :


Komponen yang dipergunakan pada form tersebut adalah : Label, Textbox, dan juga Command Button.

Kemudian aturlah propertinya seperti berikut ini :


Nama Kontrol
Form1
Properties
StartUpPosition = CenterScreen
Caption = Kalkulator

Nama Kontrol
Label1
Properties
Caption = Nilai 1

Nama Kontrol
Label2
Properties
Caption = Nilai 2

Nama Kontrol
Label3
Properties
Caption = Hasil

Nama Kontrol
TextBox1
Properties
Name = txtnil1
Text = (dikosongkan saja)

Nama Kontrol
TextBox2
Properties
Name = txtnil2
Text = (dikosongkan saja)

Nama Kontrol
TextBox3
Properties
Name = txthasil
Text = (dikosongkan saja)

Nama Kontrol
Command1
Properties
Name = cmdtambah
Caption = +

Nama Kontrol
Command2
Properties
Name = cmdkurang
Caption = -

Nama Kontrol
Command3
Properties
Name = cmdbagi
Caption = /

Nama Kontrol
Command4
Properties
Name = cmdkali
Caption = *
OK kalo sudah ketikan listing kode berikut ini :

Private Sub cmdtambah_Click()

txthasil.Text = Val(txtnil1.Text) + Val(txtnil2.Text)

End Sub

Private Sub cmdkurang_Click()

txthasil.Text = Val(txtnil1.Text) - Val(txtnil2.Text)

End Sub

Private Sub cmdbagi_Click()

txthasil.Text = Val(txtnil1.Text) / Val(txtnil2.Text)

End Sub

Private Sub cmdkali_Click()

txthasil.Text = Val(txtnil1.Text) * Val(txtnil2.Text)

End Sub



Selamat belajar...
READ MORE - Kalkulator Sederhana Dengan Visual Basic 6.0

Membaca Alamat Special Folder Windows Menggunakan VB 6.0

19 August 2009

Dalam ruang lingkup sistem operasi windows terdapat folder-folder istimewa (special folder) yang diantaranya adalah Start Menu, Startup, dll.
Untuk dapat membaca alamat special folder windows menggunakan VB dibutuhkan penggunaan suatu fungsi di windows yang dikenal dengan nama Windows API.
Nah dalam artikel ini akan dijelaskan bagaimana kita sebagai programer VB bisa melakukan pembacaan alamat-alamat special folder tersebut.

Pertama-tama yang harus anda lakukan adalah membuat sebuah project baru dimana didalamnya terdapat sebuah form dan sebuah module.
Untuk formnya biarkan saja kosong tidak perlu ditambahkan objek apapun karena program ini hanyalah dalam bentuk program sederhana.

Kalau sudah tambahkan kode berikut ini ke dalam module :

Public Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal CSIDL As Long, ByVal fCreate As Boolean) As Boolean
'Konstanta2 CSIDL (Special Folder)
Public Const CSIDL_ADMINTOOLS As Long = &H30
Public Const CSIDL_ALTSTARTUP As Long = &H1D
Public Const CSIDL_APPDATA As Long = &H1A
Public Const CSIDL_BITBUCKET As Long = &HA
Public Const CSIDL_COMMON_ADMINTOOLS As Long = &H2F
Public Const CSIDL_COMMON_ALTSTARTUP As Long = &H1E
Public Const CSIDL_COMMON_APPDATA As Long = &H23
Public Const CSIDL_COMMON_DESKTOPDIRECTORY As Long = &H19
Public Const CSIDL_COMMON_DOCUMENTS As Long = &H2E
Public Const CSIDL_COMMON_FAVORITES As Long = &H1F
Public Const CSIDL_COMMON_PROGRAMS As Long = &H17
Public Const CSIDL_COMMON_STARTMENU As Long = &H16
Public Const CSIDL_COMMON_STARTUP As Long = &H18
Public Const CSIDL_COMMON_TEMPLATES As Long = &H2D
Public Const CSIDL_CONNECTIONS As Long = &H31
Public Const CSIDL_CONTROLS As Long = &H3
Public Const CSIDL_COOKIES As Long = &H21
Public Const CSIDL_DESKTOP As Long = &H0
Public Const CSIDL_DESKTOPDIRECTORY As Long = &H10
Public Const CSIDL_DRIVES As Long = &H11
Public Const CSIDL_FAVORITES As Long = &H6
Public Const CSIDL_FLAG_CREATE As Long = &H8000
Public Const CSIDL_FLAG_DONT_VERIFY As Long = &H4000
Public Const CSIDL_FLAG_MASK As Long = &HFF00&
Public Const CSIDL_FLAG_PFTI_TRACKTARGET As Long = CSIDL_FLAG_DONT_VERIFY
Public Const CSIDL_FONTS As Long = &H14
Public Const CSIDL_HISTORY As Long = &H22
Public Const CSIDL_INTERNET As Long = &H1
Public Const CSIDL_INTERNET_CACHE As Long = &H20
Public Const CSIDL_LOCAL_APPDATA As Long = &H1C
Public Const CSIDL_MYPICTURES As Long = &H27
Public Const CSIDL_NETHOOD As Long = &H13
Public Const CSIDL_NETWORK As Long = &H12
Public Const CSIDL_PERSONAL As Long = &H5
Public Const CSIDL_PRINTERS As Long = &H4
Public Const CSIDL_PRINTHOOD As Long = &H1B
Public Const CSIDL_PROFILE As Long = &H28
Public Const CSIDL_PROGRAM_FILES As Long = &H26
Public Const CSIDL_PROGRAM_FILES_COMMON As Long = &H2B
Public Const CSIDL_PROGRAM_FILES_COMMONX86 As Long = &H2C
Public Const CSIDL_PROGRAM_FILESX86 As Long = &H2A
Public Const CSIDL_PROGRAMS As Long = &H2
Public Const CSIDL_RECENT As Long = &H8
Public Const CSIDL_SENDTO As Long = &H9
Public Const CSIDL_STARTMENU As Long = &HB
Public Const CSIDL_STARTUP As Long = &H7
Public Const CSIDL_SYSTEM As Long = &H25
Public Const CSIDL_SYSTEMX86 As Long = &H29
Public Const CSIDL_TEMPLATES As Long = &H15
Public Const CSIDL_WINDOWS As Long = &H24
Public Const ERROR_SUCCESS = 0&


Public Function GetSpecialFolder(ByVal lpCSIDL As Long) As String
Dim sPath As String
Dim lRet As Long

sPath = String$(255, 0)
lRet = SHGetSpecialFolderPath(0&, sPath, lpCSIDL, False)

If lRet <> 0 Then
GetSpecialFolder = FixBuffer(sPath)
End If
End Function

Public Function FixBuffer(ByVal sBuffer As String) As String
Dim NullPos As Long
NullPos = InStr(sBuffer, Chr$(0))

If NullPos > 0 Then
FixBuffer = Left$(sBuffer, NullPos - 1)
End If

End Function


Jika sudah tambahkan juga kode berikut ini pada form tepatnya pada saat event form load :

Private Sub Form_Load()

MsgBox "Alamat folder startup anda adalah : " & GetSpecialFolder(&H7), vbInformation, "Info"

End Sub

Selamat mencoba dan selamat belajar...
READ MORE - Membaca Alamat Special Folder Windows Menggunakan VB 6.0

Artikel Lain

 
 
 

Go To Link

  »  A1VBCode
  »  Bina Sarana Informatika
  »  Blogger
  »  Deconstruction Code
  »  Diskusiweb
  »  dremi.info
  »  Echo
  »  Facebook
  »  Gary Abraham
  »  Ilmu Website
  »  JQuery
  »  Mahesajenar Widget
  »  STMIK Nusa Mandiri
  »  OOM Blog
  »  Planet Source Code
  »  Rahma Blog
  »  Terren Jr
  »  VB-Bego
  »  Herry Blog

Advertisement