[VB6] Membuat WebServer sederhana menggunakan component WinSock
Pengertian Web server adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML. itulah pengertian web server sebenarnya. dalam bentuk sederhana web server akan mengirim data HTML kepada permintaan web Browser sehingga akan terlihat seperti pada umumnya yaitu sebuah tampilan website.
Catatan: Pada tutorial kali ini sedikit membahas tentang HTML, di sarankan pembaca sudah memahami dasar HTML khusus nya tentang Form Method Get (Bisa pelajari disini)
Tutorial
1. Tekan CTRL+T
2. Bila layar component sudah tampil cari dan centang pada "Microsoft Winsock Control"
3. Dan tambahkan component tersebut ke Form anda
4. Lihat di propeties Winsock nya, pada index ubah jadi 0. ini bermaksud agar program bisa men-duplikat winsock nya.. kenapa di duplikat? agar web server kita bisa dibuka oleh banyak webbrowser dalam satu waktu
5. Untuk bagian deklarasi isi dengan
Dim TotalKoneksi As Integer
6. Lalu tambahkan fungsi dibawah ini
Private Function GET_VALUE(data As String, par As String) As String
If Left(data, 7 + Len(par)) = "GET /?" & par & "=" Then
GET_VALUE = Split(Right(data, Len(data) - 7 - Len(par)), " HTTP")(0)
Else
GET_VALUE = ""
End If
End Function
Fungsi ini saya buat untuk mengambil nilai GET dari client
7. Untuk Form_Load bisa di isi dengan ini
Private Sub Form_Load()
TotalKoneksi = 0
Winsock1(0).LocalPort = 1000
Winsock1(0).Listen
End Sub
Code ini menyatakan bahwa WebServer kita bisa diakses melalui port 1000 (bisa diubah bila kalian mau)
8 Lalu tambahkan code ini
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If TotalKoneksi = 0 Then
Load Winsock1(1)
If Winsock1(1).State <> sckClosed Then Winsock1(1).Close
Winsock1(1).Accept requestID
TotalKoneksi = 1
Else
For i = 1 To TotalKoneksi
If Winsock1(i).State = sckClosed Then
Winsock1(i).Accept requestID
Exit Sub
End If
Next i
TotalKoneksi = TotalKoneksi + 1
Load Winsock1(TotalKoneksi)
If Winsock1(TotalKoneksi).State <> sckClosed Then Winsock1(TotalKoneksi).Close
Winsock1(TotalKoneksi).Accept requestID
End If
End Sub
Code diatas digunakan untuk
- Mengalihkan koneksi dari Winsock1(0) dengan Winsock1(1)
- Jika Winsock1(1) sudah digunakan maka cari Winsock1(index) lain yang koneksi nya sudah diputuskan
- Jika tetap tidak ada Winsock1(index) lain yang kosong maka buat duplikat Winsock1(index) baru dengan cara Load Winsock1(index nya)
Catatan: Winsock(0) digunakan sebagai Navigator, yang mengatur seluruh koneksi
9. Tambahkan Code ini
Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim Data_Kirim, Data_Terima As String
Winsock1(Index).GetData Data_Terima, vbString
If GET_VALUE(Data_Terima, "nama") <> "" Then
Data_Kirim = "<html><body>Hai... <b>" & GET_VALUE(Data_Terima, "nama") & "</b><br/>" & _
"<a href='\'>Kembali</a></body></html>"
Else
Data_Kirim = "<html><body>" & _
"<form method='GET'>Nama :<input type='text' name='nama'>" & _
"<input type='submit' value='OK'></body></html>"
End If
Winsock1(Index).SendData Data_Kirim
End Sub
Code ini digunakan untuk mengirimkan code HTML kepada User untuk ditampilkan ke WebBrowser nya
10. Terakhir tambahkan Code ini
Private Sub Winsock1_SendComplete(Index As Integer)
Winsock1(Index).Close
End Sub
Code ini digunakan untuk menutup koneksi bila semua HTML sudah sepenuhnya dikirim ke User
ScreenShot Hasil Percobaan
[VB6] Membuat dan Membaca file Config
Terkadang suatu program memiliki konfigurasi atau settingan sendiri (yang bisa diubah oleh user). ada berbagai cara untuk menyimpan data konfigurasi tersebut, salah satunya sudah dibahas yaitu menyimpan nya di Registry (Click disini untuk membaca). Tetapi setiap bentuk penyimpanan pasti ada kelebihan dan kekurangan nya masing masing, untuk menyimpan di file yang akan dibahas kali ini
mempunyai kelebihan yaitu mudah di-backup dan mudah di-restore kembali data bila sang user ingin mengganti komputer atau ingin memformat komputernya.Strukur File
Untuk struktur file config terdiri dari beberapa section, di setiap section memiliki beberapa key, dan setiap key memiliki masing masing nilai. bentuk umum nya seperti ini
Module yang diperlukan
Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Public Sub WriteConfig(sSection As String, sKeyName As String, sNewString As String, sINIFileName As String)
Call WritePrivateProfileString(sSection, sKeyName, sNewString, sINIFileName)
End Sub
Public Function ReadConfig(sSection As String, sKeyName As String, sINIFileName As String) As String
Dim sRet As String
sRet = String(255, Chr(0))
ReadConfig = Left(sRet, GetPrivateProfileString(sSection, ByVal sKeyName, "", sRet, Len(sRet), sINIFileName))
End Function
Menulis File Config
[VB6] Menggunakan Net Framework di Visual Basic 6
Pendahuluan
Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) atau lebih dikenal dengan singkatan dot net (tidak berhubungan dengan domain .net) merupakan sebuah perangkat lunak kerangka kerja yang berjalan utamanya padasistem operasi Microsoft Windows, saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem.
Langkah awal
Jika kalian langsung ke langkah selanjutnya mungkin kalian akan menemukan error "Activex Component Can't Create Object". Agar Net Framwork dapat digunakan di Visual Basic 6.0, saya sudah siapkan tools nya Disini
Memasukan/Menambahkan Net Framework kedalam Visual Basic 6
- pada menu pilih Project > References...
- click "Browser" lalu buka directory "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.tlb"
- jangan lupa centang pada "system" lalu click ok (seperti pada gambar)
Source Code (Contoh penggunaanya)
Tutorial ini hanya menggunakan fungsi fungsi dari System.Dll maka dari itu belum banyak fungsi dari Net Framework yang dapat digunakan. Untuk menggunakan Fungsi lain masih dalam percobaan.
[VB6] Menjalan kan Program saat Windows StartUp
Program StartUp adalah program yang secara otomatis aktif bersamaan dengan di-load-nya SystemOperasi (Windows). anda bisa saja membuat Applikasi seperti ini di Visual Basic 6 dengan cara sebagai berikut
Mengaktifkan StartUp
s = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, s
Menonaktifkan StartUp
On Error Resume Next
Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName
[VB6] Penggunaan Tanggal dan Waktu
Mengambil Waktu/Tanggal
Text1.Text = Time
Contoh mengambil Tanggal
Text1.Text = Date
Format
Jika kita mencoba contoh diatas di banyak komputer, maka akan menghasilkan format format yang berbeda. ada yang "12-01-1999" (dd-mm-yyyy) , ada juga yang "01-12-99" (mm-dd-yy). itu karena penggunaan format Tanggal dan Waktu di Visual Basic 6 mengacu pada pengaturan pada setiap komputer nya. Tetapi jangan takut program anda kacau karena Tanggal dan Waktu tersebut bisa diformat ulang sehingga format di setiap komputer menjadi sama. Dibawah sini adalah contoh contoh memformat waktu dan tanggal
Format(Now, "dddd") hasilnya Minggu
Format(Now, "long date") hasilnya 31 Oktober 2010
Format(Now, "short date") hasilnya 31/10/2010
Format(Now, "dd-MM-yyyy") hasilnya 31-10-2010
Format(Now, "dd-MMM-yyyy") hasilnya 31-Okt-2010
Format(Now, "dddd, dd MMMM yyyy") hasilnya Minggu, 31 Oktober 2010
Format(Now, "long time") hasilnya 3:12:57
Format(Now, "short time") hasilnya 3:12
Format(Now, "h:mm:ss") hasilnya 3:12:57
Format(Now, "hh:mm:ss") hasilnya 03:12:57
Mengetahui selisih Tanggal atau Waktu
Format
[Object/Varieble] = DateDiff([Format],[V1],[V2])
Keterangan:
• Jika ingin mencari selisih detik maka ubah [format] diatas menjadi "s" yang berarti Second, begitu juga yang lain. jika ingin mencari selisih hari berarti ganti menjadi "d" yang berarti Day
• [V1] dan [V2] adalah tanggal/waktu yang ingin dicari selisih nya
• Jika ingin mencari selisih detik maka ubah [format] diatas menjadi "s" yang berarti Second, begitu juga yang lain. jika ingin mencari selisih hari berarti ganti menjadi "d" yang berarti Day
• [V1] dan [V2] adalah tanggal/waktu yang ingin dicari selisih nya
Contoh
Text1.Text = DateDiff("s", "03:02:30", "03:03:32")
Text1.Text = DateDiff("m", Time, "03:03:32")
Text1.Text = DateDiff("d", Date, "28/02/2014")
Mengambil Sebagian Informasi
Jika kita menggunakan Date maka menghasilkan Hari, Bulan dan Tahun. Bagaimana cara mengambil Hari nya saja? atau Bulanya saja?
Contoh
Text1.Text = Day(Date)
Text1.Text = Month(Date)
Text1.Text = Year("20-01-2010") 'Mengasilkan nilai 2010
ada pula pengunaan nya pada Waktu yaitu
Text1.Text = Second(Time)
Text1.Text = Minute(Time)
Text1.Text = Hour(Time)
Menambah Waktu dan Tanggal
Contoh situasi
waktu pertama = 02:30:50
waktu kedua = 02:30:55
waktu ketiga = 02:31:00
mungkin kalian akan sedikit kesulitan untuk membuat situasi seperti diatas karena batas maksimal angka yaitu 60, tetapi tidak usah takut karena VB6 sudah menyiapkan Fungsi yang dapat kalian gunaan dengan mudah
Format
[Object/Varieble] = DateAdd([Format],[V1],[V2])
Keterangan:
• untuk [Format] kalian sesuaikan dengan keadaan, jika seperti situasi diatas maka ubah [Format] menjadi "s" karena data yang ditambah ialah Detik
• untuk [V1] ialah jumlah nilai yang ingin ditambah, jika seperti situasi diatas maka ubah [V1] menjadi "5" karena penambahan waktu diatas ialah 5 detik
• untuk [V2] ialah waktu atau tanggalnya
• untuk [Format] kalian sesuaikan dengan keadaan, jika seperti situasi diatas maka ubah [Format] menjadi "s" karena data yang ditambah ialah Detik
• untuk [V1] ialah jumlah nilai yang ingin ditambah, jika seperti situasi diatas maka ubah [V1] menjadi "5" karena penambahan waktu diatas ialah 5 detik
• untuk [V2] ialah waktu atau tanggalnya
Contoh
Text1.Text = DateAdd("s", 2, "02:03:05") 'Maka menghasilkan 02:03:07
Text1.Text = DateAdd("y",1,Date)
Text1.Text = DateAdd("m",5,"01-11-2010") 'Maka menghasilkan 01-04-2011
[VB6] Mengirim Command ke CommandPrompt dan Mengambil Hasil Command
Pendahuluan
Command prompt adalah sebuah perintah DOS yg ada di windows yg bisa kita akses secara online atau offline, command prompt sendiri merupakan sebuah fitur yg cukup menarik dan memiliki fungsi yg cukup berguna, dimana kita bisa mengakses, mengganti nama, memindahkan sebuah file dengan mudah melalui fitur ini. Tapi tidak semua pengguna komputer yg menggunakan fitur ini dengan bijaksana, adapun beberapa hacker yg sering melalukan aksi jahilnya melalui fitur ini. Disini saya akan membagi ilmu bagaimana cara mengirim intruksi/perintah ke command prompt dan mengambil laporanyaModule yang diperlukan
Public Sub Send(st As String)
Open App.Path & "\sub.cmd" For Output As #1
Print #1, st & " > """ & App.Path & "\result.txt"""
Close #1
Shell App.Path & "\sub.cmd", vbHide
End Sub
Public Function Report() As String
If Dir(App.Path & "\result.txt") = "" Then Exit Function
Open App.Path & "\result.txt" For Input As #1
Report = Input(LOF(1), 1)
Close #1
End Function
Mengirim Perintah
Send "Attrib"
Mengambil Laporan
Text1.Text = Report
Source Code
[VB6] Membuka URL menggunakan Dafault Web Browser
Setiap format dalam file komputer memiliki Program Dafault nya masing masing. Begitu juga Web Browser, setiap komputer kita masing masing memiliki Web Browser Dafault yang berbeda beda
Module yang diperlukan
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Sub OpenBrowser(ByVal URL As String)
Dim res As Long
res = ShellExecute(0&, "open", URL, vbNullString, vbNullString, vbNormalFocus)
End Sub
Contoh
OpenBrowser "http://www.google.Com"
Membuat Hyperlink
1. Tambahkan Label (Lable1)
2. Tambahkan Code seperti berikut
Private Sub Form_Load()
Label1.ForeColor = vbBlue
Label1.FontUnderline = True
Label1.Caption = "Google.Com"
End Sub
Private Sub Label1_Click()
OpenBrowser "Google.Com"
End Sub
[VB6] Mengenal lebih jauh tentang ClipBoard (Copy, Paste)
Pengertian
ClipBoard adalah tempat khusus pada memory yang disediakan untuk menyimpan kalimat yang telah kita Copy, dan kita bisa saja mengambil data tersebut sewaktu waktu dengan menggunakan perintah Paste
Menyimpan Kata kedalam ClipBoard
Clipboard.SetText "Planet VB6"
Mengambil kata dari ClipBoard
Text1.Text = Clipboard.GetText
Source Code
[VB6] Cara membuat Web Browser sendiri
Menambah Component
Sebelum memulai kita harus menambah component WebBrowser terlebih dahulu kedalam Applikasi dengan cara:
1. Project > Component...
2. Cari kata Microsoft Internet Control
3. Click OK
4. Masukan Component WebBrowser dari Toolbox kedalam Program mu
Mengakses sebuah halaman
WebBrowser1.Navigate "Google.Com"
Hentikan Proses
WebBrowser1.Stop
Kembali kehalaman sebelumnya
WebBrowser1.GoBack
Kembali kehalaman selanjutnya
WebBrowser1.GoForward
Menggunakan ProgressBar pada WebBrowser
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
If ProgressMax > 0 And Progress >= 0 Then
ProgressBar1.Max = ProgressMax
ProgressBar1.Value = Progress
End If
End Sub