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 If
pada 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





