Membuat Hide dan Un-hide Folder dengan Password di VB.NET - Selamat malam para sahabat blogger semuanya. Berjumpa lagi dengan saya guzko di blog tutorial saya yang sederhana ini. Mudah-mudahan sahabat blogger bisa menemukan manfaat dan inspirasi di blog saya ini.
Sesuai judul Membuat Hide dan Un-hide Folder dengan Password di VB.NET, kali ini saya akan mencoba untuk membagikan tutorial bagi sahabat blogger tentang bagaimana caranya menyembunyikan folder dengan menggunakan aplikasi. Berikut dibawah ini adalah sekilas penampakan dari aplikasinya :
bagaimana sahabat blogger apakah tertarik untuk membuatnya ? Jika iya, mari kita ikuti langkah dibawah ini untuk membuat aplikasi seperti itu :
(Baca Juga : Enkripsi dan Dekripsi Text dengan VB.Net)
Buka Visual Studio
Buka visual studio sahabat dan buat sebuah project baru. Pada aplikasi ini kita membuat 3 form, sahabat bisa desain form-form nya seperti gambar dibawah ini :
berikut komponen-komponen yang saya gunakan untuk semua form diatas, biar sahabat blogger lebih jelas :
Form | Komponen | Property Name | Keterangan |
---|---|---|---|
Form1 | Folder Browser Dialog | FolderBrowserDialog1 | Digunakan untuk melakukan pemilihan folder yang akan di-hide dan un-hide |
Tool Strip | ToolStrip1 | Untuk menu yang digunakan pada aplikasi. Pada toolstrip1 ini terdapat menu (1. Hide Folder 2.Un-hide Folder 3.Set Password) | |
Data Grid | dgFolder | Digunakan untuk menampilkan data-data dari folder yang telah disembunyikan | |
frmPass | Textbox | txtPass | Digunakan untuk input password pada saat pertama aplikasi dijalankan |
frmSetPass | Textbox | txtPass | Digunakan untuk menginputkan password baru |
txtConfirmPass | Digunakan untuk konfirmasi password | ||
Label | Label2 | Digunakan sebagai menu keluar dari frmSetPass |
itulah komponen-komponen yang saya gunakan pada pembuatan aplikasi ini. Semoga para sahabat blogger bisa memahami dan mengerti. Baiklah setelah kita selesai mendesign dari aplikasi yang kita buat, sekarang kita lanjutkan kedalam tahap coding.
Tahap Peng-codingan
Form1
pada form ini, kita import dulu reference yang akan digunakan seperti dibawah ini :
Imports Microsoft.VisualBasic.FileIO Imports System.IO
kemudian dilanjutkan dengan membuat global variabel pada form1 ini :
Dim folderHide As String Dim HiddenTable As New DataTable Dim PFile As String = Environment.CurrentDirectory & "\" & "Password.txt"PFile diatas adalah link atau lokasi dari file text yang akan dibuat otomatis oleh aplikasi untuk menyimpan password user.
Sekarang kita buat dulu fungsi-fungsi yang akan kita gunakan pada aplikasi ini. Fungsi yang pertama ini adalah fungsi untuk menyimpan/menghapus data yang terdapat pada file.txt yang akan dibuat otomatis oleh aplikasi ini. Seperti contoh, jika misalkan sahabat melakukan hide folder, maka path dari hide folder itu akan disimpan pada *.txt ini. Berikut code fungsinya :
Sub StoreToFile() Dim FileToStore As String = Environment.CurrentDirectory & "\" & "LockedFiles.txt" Dim tempString As New System.Text.StringBuilder Dim iEnu As IEnumerator = HiddenTable.Rows.GetEnumerator Dim DRow As DataRow While iEnu.MoveNext DRow = CType(iEnu.Current, DataRow) tempString.AppendLine(DRow.Item(0)) End While My.Computer.FileSystem.WriteAllText(FileToStore, tempString.ToString, False) End Sub
fungsi dibawah ini untuk menambahkan data kedalam datagrid :
Sub AddToTable() Dim AddRow As DataRow = HiddenTable.NewRow() AddRow.Item(0) = folderHide AddRow.Item(1) = False HiddenTable.Rows.Add(AddRow) End Sub
Sub AddToTable(ByVal ToReadFromFile As String) Dim AddRow As DataRow Dim fs As New System.IO.FileStream(ToReadFromFile, IO.FileMode.Open, IO.FileAccess.Read) Dim d As New System.IO.StreamReader(fs) d.BaseStream.Seek(0, IO.SeekOrigin.Begin) While d.Peek() > -1 AddRow = HiddenTable.NewRow() AddRow.Item(0) = d.ReadLine AddRow.Item(1) = False HiddenTable.Rows.Add(AddRow) End While d.Close() End Sub
Fungsi dibawah ini adalah untuk mengatur datagrid yang digunakan, codenya seperti dibawah ini :
Sub gridD() With dgFolder .RowHeadersWidth = 20 .ColumnHeadersHeight = 35 .ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .ColumnHeadersDefaultCellStyle.Font = New Font("Tahoma", 9) .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill .Columns(0).Width = 200 .Columns(1).Width = 50 End With End Sub
setelah selesai membuat fungsi-fungsinya, sekarang klik 2x pada form1 dan pindahkan ke event shown, inputkan kode seperti ini :
If System.IO.File.Exists(PFile) Then If frmPass.ShowDialog() = Windows.Forms.DialogResult.Cancel Then End End If Else MsgBox("Ini mungkin pertama kalinya anda menggunakan aplikasi ini atau mungkin file yang dibutuhkan telah hilang. Gunakan password standar 12345 untuk membuka aplikasi setelah itu silahkan anda ganti password untuk keamanan", vbExclamation, "Guzko Tutorial") If frmPass.ShowDialog() = Windows.Forms.DialogResult.Cancel Then End End If End If 'membuat kolom untuk data table Dim HiddenFolders As New DataColumn("HiddenFolders") HiddenFolders.DataType = System.Type.GetType("System.String") Dim Unhide As New DataColumn("Unhide") Unhide.DataType = System.Type.GetType("System.Boolean") HiddenTable.Columns.Add(HiddenFolders) HiddenTable.Columns.Add(Unhide) dgFolder.DataSource = HiddenTable If System.IO.File.Exists(Environment.CurrentDirectory & "\" & "LockedFiles.txt") Then Me.AddToTable(Environment.CurrentDirectory & "\" & "LockedFiles.txt") End If Me.gridD()code diatas, jika user menjalankan aplikasi ini, maka pertama kali aplikasi akan mengecek keberadaan file "password.txt". Jika seandainya file tersebut ditemukan oleh system, maka akan tampil frmPass, namun jika tidak, user akan diinfokan oleh system untuk menginputkan password standar.
Setelah itu kita lanjutkan dengan, klik 2x pada menu hide folder dan inputkan kode dibawah ini :
If FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then folderHide = FolderBrowserDialog1.SelectedPath.TrimEnd 'sizeFolder = GetFolderSize(folderHide) Dim ToHideDir As New System.IO.DirectoryInfo(folderHide) ToHideDir.Attributes = IO.FileAttributes.Hidden Me.AddToTable() End If
lanjutkan dengan pada menu un-hide folder, inputkan kode dibawah ini :
Dim RowsToDelete As New List(Of Int16) Dim iEn As IEnumerator = HiddenTable.Rows.GetEnumerator Dim RowNo As Int16 = -1 While iEn.MoveNext RowNo = RowNo + 1 Dim FolderPath As String = CType(iEn.Current, DataRow).Item(0) Dim Unhide As Boolean = CType(iEn.Current, DataRow).Item(1) If Unhide = True Then Dim ToHideDir As New System.IO.DirectoryInfo(FolderPath) ToHideDir.Attributes = ToHideDir.Attributes And Not IO.FileAttributes.Hidden RowsToDelete.Add(RowNo) End If End While RowsToDelete.Reverse() For i As Int16 = 0 To RowsToDelete.Count - 1 HiddenTable.Rows.RemoveAt(RowsToDelete(i)) Next i Me.StoreToFile() End Sub
Klik 2x pada datagrid dan inputkan kode dibawah ini :
If e.ColumnIndex = 1 Then If HiddenTable.Rows(e.RowIndex).Item(1) = True Then HiddenTable.Rows(e.RowIndex).Item(1) = False Else HiddenTable.Rows(e.RowIndex).Item(1) = True End If End If
oke peng-codingan pada form1 ini telah selesai. Sekarang kita lanjutkan ke bagian frmPass.
Peng-codingan frmPass
buat global variable seperti dibawah ini:
Dim PFile As String = Environment.CurrentDirectory & "\" & "Password.txt"
kemudian klik 2x pada txtPass dan pindahkan ke event KeyDown, inputkan kode dibawah ini :
If e.KeyCode = Keys.Enter Then Static count As Int16 = 0 If System.IO.File.Exists(PFile) Then Dim pesanDekrip As String Dim fileContent As String = My.Computer.FileSystem.ReadAllText(PFile) Dim byt As Byte() = Convert.FromBase64String(fileContent) pesanDekrip = System.Text.Encoding.UTF8.GetString(byt) If pesanDekrip = txtPass.Text.Trim Then Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() Else count += 1 MsgBox("password anda salah. anda telah salah sebanyak : " & count & " .Sisa kesempatan anda : " & 3 - count & ". Salah 3x maka program otomatis exit", vbCritical, "Guzko Tutorial") If count >= 3 Then End End If End If Else If txtPass.Text = "12345" Then Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() End If End If End Ifpada kode diatas, jika user menekan enter di keyboard pada txtPass, maka system akan melakukan pengecekan apakah file password.txt terdapat atau tidak. Jika terdapat file password.txt, maka password yang terapat pada file text tersebut akan di-dekripsi terlebih dahulu. Jika seandainya user salah menginputkan password sebanyak 3x maka aplikasi otomatis keluar.
untuk peng-codingan pada frmPass, hanya itu saja, sekarang kita lanjutkan coding ke frmSetPass.
Peng-codingan frmSetPass
buat global variable seperti berikut ini:
Dim PFile As String = Environment.CurrentDirectory & "\" & "Password.txt" Dim passEnkrip As String
klik 2x pada txtPass dan pindahkan ke event keydown serta inputkan kode dibawah ini :
If e.KeyCode = Keys.Enter Then If txtPass.Text = "" Then MsgBox("Silahkan inputkan password anda", vbCritical, "Guzko Tutorial") txtPass.Focus() Exit Sub ElseIf txtPassConfirm.Text = "" Then MsgBox("Silahkan inputkan sekali password anda", vbCritical, "Guzko Tutorial") txtPassConfirm.Focus() Exit Sub ElseIf txtPassConfirm.Text <> txtPass.Text = "" Then MsgBox("password yang anda inputkan tidak cocok. silahkan ulangi", vbCritical, "Guzko Tutorial") txtPass.Clear() txtPassConfirm.Clear() txtPass.Focus() Else Try If System.IO.File.Exists(PFile) Then My.Computer.FileSystem.WriteAllText(PFile, txtPassConfirm.Text, True) Else System.IO.File.Create(Environment.CurrentDirectory & "\" & "Password.txt").Dispose() My.Computer.FileSystem.WriteAllText(PFile, txtPassConfirm.Text.Trim, True) End If Catch ex As Exception MsgBox("Terjadi kesalahan : " & ex.Message, vbCritical, "Guzko Tutorial") End Try Me.Close() End If End If
klik juga 2x pada txtConfirmPass dan pindahkan juga ke event keydown dan inputkan kode dibawah ini :
If e.KeyCode = Keys.Enter Then If txtPassConfirm.Text = "" Then MsgBox("silahkan inputkan password anda sekali lagi", vbCritical, "Guzko Tutorial") txtPassConfirm.Focus() Exit Sub ElseIf txtPassConfirm.Text <> txtPass.Text Then MsgBox("password yang anda inputkan tidak sama", vbCritical, "Guzko Tutorial") txtPass.Clear() txtPassConfirm.Clear() txtPass.Focus() Exit Sub Else Try If System.IO.File.Exists(PFile) Then Dim pesan As Integer pesan = MsgBox("Apakah anda yakin ingin meng-update password yang ada ?", vbQuestion + vbYesNo, "Guzko Tutorial") If pesan = vbYes Then 'menghapus file pfile My.Computer.FileSystem.DeleteFile(PFile) 'buat file pfile System.IO.File.Create(Environment.CurrentDirectory & "\" & "Password.txt").Dispose() Dim byt As Byte() = System.Text.Encoding.UTF8.GetBytes(txtPassConfirm.Text) passEnkrip = Convert.ToBase64String(byt) My.Computer.FileSystem.WriteAllText(PFile, passEnkrip, True) End If Else System.IO.File.Create(Environment.CurrentDirectory & "\" & "Password.txt").Dispose() Dim byt As Byte() = System.Text.Encoding.UTF8.GetBytes(txtPassConfirm.Text) passEnkrip = Convert.ToBase64String(byt) My.Computer.FileSystem.WriteAllText(PFile, passEnkrip, True) End If Catch ex As Exception MsgBox("Terjadi kesalahan : " & ex.Message, vbCritical, "Guzko Tutorial") End Try Me.Close() End If End If
oke selesai sudah kita melakukan peng-codingan dari semua form. Sekarang waktunya kita testing. Silahkan sahabat testing dan jika diikuti dengan benar maka dipastikan aplikasi yang sahabat blogger buat ini dijamin berhasil. Ataupun jika seandainya tidak berhasil atau ada yang ingin sahabat blogger tanyakan, bisa langsung tinggalkan jejak pada kolom komentar dibawah.
Demikian tutorial saya ini tentang Membuat Hide dan Un-hide Folder dengan Password di VB.NET, semoga ada manfaatnya bagi sahabat blogger semuanya. Jika ada yang ingin mendownload source code lengkapnya bisa melalui link dibawah.
Sekian dulu dari saya, kita berjumpa lagi dilain waktu dengan tutorial yang berbeda....seee...uuuuu