Senin, 28 November 2011

FileSystemWatcher

FileSystemWatcher adalah sebuah kontrol yang digunakan untuk me-monitor / memantau aktifitas yang terjadi di suatu Folder, seperti membuat, merubah, menghapus File maupun Folder. Penggunaannya sangat mudah, berikut contoh caranya :
  • Buat Project baru dengan sebuah Form didalamnya. Masukkan 1 kontrol FileSystemWatcher ke dalam Form tersebut.
  • Pilih Folder mana yang akan di monitor dengan mengubah properti "Path"-nya.
  • Jika proses monitor ingin dilakukan juga pada Folder di dalam Folder terpilih, ubah properti "IncludeSubdirestories" menjadi "True".
  • Sekarang untuk menampung hasilnya, tambahkan 1 kontrol ListBox ke dalam Form.
  • Ketikkan kode :
    Di bagian 'FileSystemWatcher1_Changed'
    ListBox1.Items.Add("Dirubah > " & e.FullPath)
    Di bagian 'FileSystemWatcher1_Created'
    ListBox1.Items.Add("Dibuat > " & e.FullPath)
    Di bagian 'FileSystemWatcher1_Deleted'
    ListBox1.Items.Add("Dihapus > " & e.FullPath)
    Di bagian 'FileSystemWatcher1_Renamed'
    ListBox1.Items.Add("Diganti namanya > " & e.FullPath)
Sekarang jalankan Project, lalu buat percobaan dengan melakukan aktifitas seperti membuat dan menghapus File atau Folder.

Label: , , ,

Selasa, 15 November 2011

Menyembunyikan File dan Folder

Terkadang seorang programmer ingin membuat sebuah File atau Folder yang tersembunyi (hidden) dengan tujuan agar lebih aman dan tidak mudah diutak atik oleh user. Berikut ini cara menyembunyikan File dan Folder sesuai tingkat ke-hidden-annya.
  • Tingkat 1 (Hidden)
    [ VB 6.0 ]
    SetAttr "Lokasi File atau Folder", vbHidden
    [ VB .NET ]
    SetAttr("Lokasi File atau Folder", FileAttribute.Hidden)

  • Tingkat 2 (Super Hidden)
    [ VB 6.0 ]
    SetAttr "Lokasi File atau Folder", vbHidden Or vbSystem
    [ VB .NET ]
    SetAttr("Lokasi File atau Folder", FileAttribute.Hidden Or FileAttribute.System)

Ketika File atau Folder di hidden / disembunyikan, maka File atau Folder tersebut tidak dapat di olah /di proses. Maka dari itu File atau Folder tersebut harus dimunculkan terlebih dulu. Contoh kode pemrosesan file :

[ VB 6.0 ]
SetAttr "Lokasi File atau Folder", vbNormal 'memunculkan file

'pemrosesan file
'kode-kode pemrosesan file
'kode-kode pemrosesan file

SetAttr "Lokasi File atau Folder", vbHidden 'disembunyikan lagi

[ VB .NET ]
SetAttr("Lokasi File atau Folder", FileAttribute.Normal) 'memunculkan file

'pemrosesan file
'kode-kode pemrosesan file
'kode-kode pemrosesan file

SetAttr("Lokasi File atau Folder", FileAttribute.Hidden) 'disembunyikan lagi

Label: , , ,

Rabu, 27 April 2011

Mengetahui Ukuran File dan Folder

Jika Anda membutuhkan kode untuk mengetahui ukuran / size dari file maupun folder, berikut ini contoh potongan kodenya :

Mengetahui ukuran file
Dim l As Long
l = FileLen("LOKASI FILE")
MsgBox l

Mengetahui ukuran folder
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetFolder("LOKASI FOLDER").Size

Nilai output yang dihasilkan merupakan nilai dengan satuan Byte (B). Perbandingannya :
1024 Byte (B) = 1 KiloByte (KB)
1024 KiloByte (KB) = 1 MegaByte (MB)
1024 MegaByte (MB) = 1 GigaByte (GB)
Jadi misalnya Anda ingin mengetahui ukuran file dalam satuan MegaByte (MB) , contohnya sebagai berikut :
Dim l As Long
l = ((FileLen("LOKASI FILE") / 1024) / 1024)
MsgBox l & " MB"

Label: , , ,

Minggu, 17 April 2011

Cut, Copy, Delete, dan Rename

Kegiatan seperti Cut, Copy, Delete, dan Rename adalah kegiatan yang rutin dilakukan bila berhadapan dengan File maupun Folder. Kode-kode berikut ini akan menunjukkan bagaimana kegiatan tersebut dijalankan dalam VB. Kode ini menggunakan fungsi API yang lebih baik bila dibandingkan dengan fungsi bawaan / default.

Buat Module baru dan ketikkan :
[ VB 6.0 ]
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Long

Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
[ VB .NET ]
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer

Structure SHFILEOPSTRUCT
Dim hWnd As Integer
Dim wFunc As Integer
Dim pFrom As String
Dim pTo As String
Dim fFlags As Integer
Dim fAborted As Boolean
Dim hNameMaps As Integer
Dim sProgress As String
End Structure


Lalu tambahkan kode berikut ini tepat setelah kode diatas.
Enum ffAction
FO_MOVE = &H1
FO_COPY = &H2
FO_DELETE = &H3
FO_RENAME = &H4
End Enum

Enum ffFlags
FOF_ALLOWUNDO = &H40 'menghapus ke recycle bin
FOF_NOCONFIRMATION = &H10 'menghilangkan pesan konfirmasi
FOF_NOCONFIRMMKDIR = &H200 'menghilangkan pesan pembuatan folder jika folder tidak ada
FOF_NOERRORUI = &H400 'menghilangkan pesan kesalahan
FOF_RENAMEONCOLLISION = &H8 'otomatis rename file jika ganda
FOF_SILENT = &H4 'menghilangkan dialog proses
End Enum

Public Sub FFOperation(ByVal Source As String, ByVal Destination As String, ByVal Action As ffAction, ByVal Flags As ffFlags)
Dim SO As SHFILEOPSTRUCT
With SO
.wFunc = Action
.pFrom = Source & Chr(0) & Chr(0)
.pTo = Destination
.fFlags = Flags
End With
SHFileOperation SO
End Sub



Berikut ini contoh penggunaannya :

1. CUT
VB 6.0 FFOperation "C:\Sumber.txt", "C:\Tujuan.txt", FO_MOVE, 0
VB .NET FFOperation("C:\Sumber.txt", "C:\Tujuan.txt", ffAction.FO_MOVE, 0)
Jika Anda ingin menghilangkan dialog proses-nya, ketikkan :
VB 6.0 FFOperation "C:\Sumber.txt", "C:\Tujuan.txt", FO_MOVE, FOF_SILENT
VB .NET FFOperation("C:\Sumber.txt", "C:\Tujuan.txt", ffAction.FO_COPY, ffFlags.FOF_SILENT)

2. COPY
VB 6.0 FFOperation "C:\Sumber.txt", "C:\Tujuan.txt", FO_COPY, 0
VB .NET FFOperation("C:\Sumber.txt", "C:\Tujuan.txt", ffAction.FO_MOVE, 0)
Jika Anda ingin menghilangkan dialog proses-nya, ketikkan :
VB 6.0 FFOperation "C:\Sumber.txt", "C:\Tujuan.txt", FO_COPY, FOF_SILENT
VB .NET FFOperation("C:\Sumber.txt", "C:\Tujuan.txt", ffAction.FO_COPY, ffFlags.FOF_SILENT)

3. DELETE
VB 6.0 FFOperation "C:\Sumber.txt", "", FO_DELETE, 0
VB .NET FFOperation("C:\Sumber.txt", "", ffAction.FO_DELETE, 0)
Jika Anda ingin menghilangkan dialog proses-nya, ketikkan :
VB 6.0 FFOperation "C:\Sumber.txt", "", FO_DELETE, FOF_SILENT
VB .NET FFOperation("C:\Sumber.txt", "", ffAction.FO_DELETE, ffFlags.FOF_SILENT)
Jika Anda ingin menghapus ke RecycleBin, ketikkan :
VB 6.0 FFOperation "C:\Sumber.txt", "", FO_DELETE, FOF_SILENT + FOF_ALLOWUNDO
VB .NET FFOperation("C:\Sumber.txt", "", ffAction.FO_DELETE, ffFlags.FOF_SILENT + ffFlags.FOF_ALLOWUNDO)

4. RENAME
VB 6.0 FFOperation "C:\NamaLama.txt", "C:\NamaBaru.txt", FO_RENAME, 0
VB .NET FFOperation("C:\NamaLama.txt", "C:\NamaBaru.txt", ffAction.FO_RENAME, 0)

Label: , , ,

Rabu, 06 April 2011

Scan File

Proses scan file biasanya digunakan aplikasi antivirus untuk mendapatkan seluruh lokasi file dalam suatu folder atau drive tertentu. Sebenarnya scan file juga bisa digunakan sekedar sebagai pencarian file tertentu. Misalnya Anda mempunyai aplikasi MP3 player, bisa ditambahkan fitur yang dapat mencari seluruh file *.mp3 yang terdapat dalam folder atau drive tertentu. Berikut ini cara membuat scan file yang sederhana.

[ VB 6.0 ]
Tambahkan Reference "Microsoft Scripting Runtime". Buat sebuah Form baru dengan sebuah ListBox dan sebuah CommandButton (Caption=Scan).
Di bagian '(Declarations)' dari Form ketikkan :
Dim Berhenti As Boolean

Sub ScanFile(ByVal Fol As Scripting.Folder)
If Berhenti = True Then Exit Sub
  
On Error Resume Next
Dim fi As Scripting.File
Dim fo As Scripting.Folder
  
For Each fi In Fol.Files
DoEvents
If Berhenti = True Then Exit Sub
List1.AddItem fi.Path 'menambahkan ke daftar
Next
  
For Each fo In Fol.SubFolders
ScanFile fo
Next

End Sub

Dan di bagian 'Command1_Click' ketikkan :
If Command1.Caption = "Scan" Then
List1.Clear
Berhenti = False
Command1.Caption = "Stop"
Dim fso As New FileSystemObject
ScanFile fso.GetFolder("D:\") 'gantikan D:\ dgn lokasi folder atau drive yg lain
Command1.Caption = "Scan"
Else 'stop
Berhenti = True
Command1.Caption = "Scan"
End If

Jika Anda ingin scan file tertentu semisal hanya file *.mp3 saja, tinggal gantikan kode berwarna merah dengan kode berikut :
If LCase(Right(fi.Path, 4)) = ".mp3" Then List1.AddItem fi.Path

Dan jika Anda ingin men-scan file yang ada di folder utamanya saja (tanpa file di folder-folder didalamnya), tinggal menghapus kode-kode yang berwarna biru.





[ VB NET ]
Buat sebuah Form baru dengan sebuah ListBox dan sebuah Button (Text=Scan).
Di bagian '(Declarations)' dari Form ketikkan :
Dim Berhenti As Boolean

Sub ScanFile(ByVal d As IO.DirectoryInfo)
If Berhenti = True Then Exit Sub
On Error Resume Next

Dim fi As IO.FileInfo
Dim di As IO.DirectoryInfo

For Each fi In d.GetFiles
Application.DoEvents()
If Berhenti = True Then Exit Sub
ListBox1.Items.Add(fi.FullName) 'menambahkan ke daftar
Next

For Each di In d.GetDirectories
ScanFile(di)
Next

End Sub

Dan di bagian 'Button1_Click' ketikkan :
If Button1.Text = "Scan" Then
ListBox1.Items.Clear()
Berhenti = False
Button1.Text = "Stop"
Dim di As IO.DirectoryInfo
di = FileIO.FileSystem.GetDirectoryInfo("D:\") 'gantikan D:\ dgn lokasi folder atau drive yg lain
ScanFile(di)
Button1.Text = "Scan"
Else 'stop
Berhenti = True
Button1.Text = "Stop"
End If

Jika Anda ingin scan file tertentu semisal hanya file *.mp3 saja, tinggal gantikan kode berwarna merah dengan kode berikut :
For Each fi In d.GetFiles("*.mp3")

Dan jika Anda ingin men-scan file yang ada di folder utamanya saja (tanpa file di folder-folder didalamnya), tinggal menghapus kode-kode yang berwarna biru.

Label: , , ,

Selasa, 05 April 2011

Atribut File dan Folder

Berikut ini contoh kode-kode yang digunakan untuk mendapatkan dan mengubah informasi atribut (readonly, hidden, archive, dll) dari File maupun Folder.

[ VB 6.0 ]
 Kode untuk mendapatkan atribut
If (GetAttr("Lokasi File atau Folder") And vbReadOnly) <> 0 Then
'kode jika ber-atribut ReadOnly
End If

Kode untuk mengubah atribut
SetAttr "Lokasi File atau Folder", vbReadOnly Or vbHidden 'set atribut ReadOnly + Hidden

Jika Anda ingin mengubah atribut seluruh File dan Folder dalam suatu Folder tertentu, caranya sebagai berikut :
Tambahkan Reference "Microsoft Scripting Runtime"
Lalu tambahkan Module baru dan ketikkan :
Sub SetAllAttribute(ByVal Fol As Folder, ByVal Att As FileAttribute)
On Error Resume Next
Dim fi As File, fo As Folder

Fol.Attributes = Att
For Each fi In Fol.Files
fi.Attributes = Att
Next

For Each fo In Fol.SubFolders
SetAllAttribute fo, Att
Next
End Sub
Kode untuk menggunakannya :
Dim fso As New FileSystemObject
SetAllAttribute fso.GetFolder("Lokasi Folder"), vbReadOnly Or vbHidden




[ VB .NET ]
Kode untuk mendapatkan atribut
If (GetAttr("Lokasi File atau Folder") And FileAttribute.ReadOnly) <> 0 Then
'kode jika ber-atribut ReadOnly
End If

Kode untuk mengubah atribut
SetAttr("Lokasi File atau Folder", FileAttribute.ReadOnly Or FileAttribute.Hidden) 'set atribut ReadOnly + Hidden

Jika Anda ingin mengubah atribut seluruh File dan Folder dalam suatu Folder tertentu, tambahkan Module baru dan ketikkan :
Sub SetAllAttribute(ByVal Fol As IO.DirectoryInfo, ByVal Att As IO.FileAttributes)
On Error Resume Next
Dim fi As IO.FileInfo, di As IO.DirectoryInfo

Fol.Attributes = Att
For Each fi In Fol.GetFiles
fi.Attributes = Att
Next

For Each di In Fol.GetDirectories
SetAllAttribute(di, Att)
Next
End Sub
Kode untuk menggunakannya :
Dim di As IO.DirectoryInfo
di = FileIO.FileSystem.GetDirectoryInfo("Lokasi Folder")
SetAllAttribute(di, IO.FileAttribute.ReadOnly Or IO.FileAttribute.Hidden)

Label: , , ,

Sabtu, 26 Maret 2011

Memilih Beberapa File Dalam Kotak Dialog

Berikut ini adalah tips bagaimana agar user dapat memilih beberapa file sekaligus dalam kotak dialog.

[ VB 6.0 ]
Buat Form baru dan tambakan didalamnya 1 CommandButton, 1 ListBox, dan 1 CommonDialog (Microsoft Common Dialog Control). Lalu di bagian 'Command1_Click' ketikkan :
On Error GoTo Ero
Dim sFile() As String, i As Integer

With CommonDialog1
.FileName = ""
.CancelError = True
.MaxFileSize = 30000
.Flags = cdlOFNExplorer + cdlOFNAllowMultiselect + cdlOFNHideReadOnly
.ShowOpen

sFile = Split(.FileName, vbNullChar)

List1.Clear 'meghapus isi listbox

If UBound(sFile) = 0 Then 'jika hanya 1 file yang dipilih
List1.AddItem sFile(0)
Else 'jika lebih dari 1 file yang dipilih
For i = 1 To UBound(sFile)
List1.AddItem Replace(sFile(0) & "\" & sFile(i), "\\", "\")
Next
End If

End With

Ero:


[ VB .NET ]
Buat Form baru dan tambakan didalamnya 1 Button, 1 ListBox, dan 1 OpenFileDialog. Lalu di bagian 'Button1_Click' ketikkan :
Dim i As Integer
With OpenFileDialog1
.Multiselect = True
.FileName = ""

If .ShowDialog = 1 Then
ListBox1.Items.Clear() 'meghapus isi listbox

For i = 0 To UBound(.FileNames)
ListBox1.Items.Add(.FileNames(i)) 'memasukkan ke listbox
Next
End If
End With

Label: , , , , ,

Minggu, 14 November 2010

Membuat Tipe File Sendiri

Pernah terpikir untuk membuat tipe file buatan anda sendiri ?. Pastinya dengan membuat tipe file sendiri, aplikasi Anda akan tampak lebih professional. Pembuatan tipe file biasanya bertujuan agar user dapat mengetahui file tersebut dikhususkan untuk aplikasi Anda dan agar file tersebut tidak tertukar dengan aplikasi yang lain.
Buat sebuah Module baru dan ketikkan :

[ VB 6.0 ]
Private Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Long, ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)

Public Sub NewFileType(ByVal Extension As String, ByVal ContentName As String, ByVal TypeName As String, Optional ByVal IconFileName As String = "")
Dim Reg, a As String
a = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)

Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_CLASSES_ROOT\." & Extension & "\", ContentName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\", TypeName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\DefaultIcon\", IconFileName
Reg.RegWrite "HKEY_CLASSES_ROOT\" & ContentName & "\Shell\Open\Command\", a & " %1"
SHChangeNotify &H8000000, 0, 0, 0
End Sub

Public Sub DelFileType(ByVal Extension As String)
On Error GoTo Ero
Dim Reg, s As String
Set Reg = CreateObject("WScript.Shell")
s = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")

Reg.RegDelete "HKEY_CLASSES_ROOT\." & Extension & "\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\DefaultIcon\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\Open\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\Shell\"
Reg.RegDelete "HKEY_CLASSES_ROOT\" & s & "\"

SHChangeNotify &H8000000, 0, 0, 0
Ero:
End Sub

Public Function CheckFileType(ByVal Extension As String) As Boolean
On Error GoTo Ero
Dim Reg, s As String, a As String
Set Reg = CreateObject("WScript.Shell")
s = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")
s = Reg.RegRead("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
a = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)

CheckFileType = (Left(s, Len(a)) = a)
Exit Function
Ero:
CheckFileType = False
End Function


[ VB .NET ]
Private Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Integer, ByVal uFlags As Integer, ByVal dwItem1 As Integer, ByVal dwItem2 As Integer)

Public Sub NewFileType(ByVal Extension As String, ByVal ContentName As String, ByVal TypeName As String, Optional ByVal IconFileName As String = "")
Dim Reg = CreateObject("WScript.Shell")
Dim a As String = Application.ExecutablePath
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)
Reg.RegWrite("HKEY_CLASSES_ROOT\." & Extension & "\", ContentName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\", TypeName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\DefaultIcon\", IconFileName)
Reg.RegWrite("HKEY_CLASSES_ROOT\" & ContentName & "\Shell\Open\Command\", a & " %1")
SHChangeNotify(&H8000000, 0, 0, 0)
End Sub

Public Sub DelFileType(ByVal Extension As String)
On Error GoTo Ero
Dim Reg = CreateObject("WScript.Shell")
Dim s As String = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")

Reg.RegDelete("HKEY_CLASSES_ROOT\." & Extension & "\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\DefaultIcon\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\Shell\")
Reg.RegDelete("HKEY_CLASSES_ROOT\" & s & "\")

SHChangeNotify(&H8000000, 0, 0, 0)
Ero:
End Sub

Public Function CheckFileType(ByVal Extension As String) As Boolean
On Error GoTo Ero
Dim Reg = CreateObject("WScript.Shell")
Dim a As String = Application.ExecutablePath
If InStr(a, " ") <> 0 Then a = Chr(34) & a & Chr(34)
Dim s As String = Reg.RegRead("HKEY_CLASSES_ROOT\." & Extension & "\")
s = Reg.RegRead("HKEY_CLASSES_ROOT\" & s & "\Shell\Open\Command\")
CheckFileType = (Microsoft.VisualBasic.Left(s, Len(a)) = a)
Exit Function
Ero:
CheckFileType = False
End Function



Contoh penggunaanya :
Misalnya Anda ingin membuat tipe file *.pvb dengan nama "Dokumen Pribadiku".
Kodenya adalah :
NewFileType "pvb", "pvbfile", "Dokumen Pribadiku"
Sedangkan untuk menghapus / membatalkannya, ketikkan :
DelFileType "pvb"
Untuk mengecek apakah tipe file tersebut terdaftar untuk aplikasi Anda, ketikkan :
MsgBox CheckFileType("pvb")


Setelah semuanya berhasil, sekarang Anda tinggal menyambungkan perintah pembukaan file tersebut ke aplikasi. Untuk lebih jelasnya klik disini.

Label: , , ,

Selasa, 09 November 2010

Membuka File tanpa menjalankan Aplikasi terlebih dulu

Sebagian besar programmer VB pasti tahu bagaimana membuka file ketika aplikasi sedang berjalan. Lalu apakah Anda tahu bagaimana membuka file tanpa menjalankan aplikasi Anda terlebih dulu. Berikut ini adalah sedikit contoh untuk mempraktekkannya.

Buat sebuah Form dengan sebuah kontrol TextBox didalamnya. Lalu ketikkan kode berikut di bagian 'Form_Load'
[ VB 6.0 ]
If Command <> "" Then
Text1.Text = Replace(Command, Chr(34), "")
End If
[ VB .NET ]
If Microsoft.VisualBasic.Command <> "" Then
TextBox1.Text = Replace(Microsoft.VisualBasic.Command, Chr(34), "")
End If
Selanjutnya, jadikan (compile / build) project tersebut menjadi file *.exe.


Inilah pilihan proses pengetesannya:
1). Klik kanan file
Pilih sebuah file dari Windows Explorer. Kemudian klik kanan pada file tersebut, lalu pilih menu 'Open With' > 'Choose Program'. Klik tombol 'Browse', lalu pilh / arahkan ke aplikasi Anda (*.exe). Dan terakhir klik tombol 'OK'.

2). Command prompt
Buka Command prompt (Start > All Programs > Accessories > Command Prompt),
lalu ketikkan :
Lokasi aplikasi <spasi> Lokasi file
lalu tekan Enter.

3). Run
Buka Run (Start > Run), lalu ketikkan :
Lokasi aplikasi <spasi> Lokasi file
lalu tekan Enter.

4). Kode VB
Shell "LOKASI APLIKASI <spasi> LOKASI FILE", vbNormalFocus

Label: , , ,

Jumat, 22 Oktober 2010

File dan Folder Properties

Fungsi berikut ini digunakan untuk membuka jendela properties dari file, folder, dan drive.

[ VB 6.0 ]
Buat Module baru dan ketikkan :
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Private Declare Function ShellExecuteEx Lib "shell32" Alias "ShellExecuteExA" (SEI As SHELLEXECUTEINFO) As Long

Public Sub ShowProperties(ByVal PathName As String)
Dim SEI As SHELLEXECUTEINFO
SEI.cbSize = Len(SEI)
SEI.fMask = &HC
SEI.lpVerb = "properties"
SEI.lpFile = PathName
Call ShellExecuteEx(SEI)
End Sub




[ VB .NET ]
Buat Module baru dan ketikkan :
<System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)> Private Class SHELLEXECUTEINFO
Public cbSize As Integer
Public fMask As Integer
Public hwnd As Integer
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpVerb As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpFile As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpParameters As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpDirectory As String = ""
Public nShow As Integer
Public hInstApp As Integer
Public lpIDList As Integer
Public lpClass As String
Public hkeyClass As Integer
Public dwHotKey As Integer
Public hIcon As Integer
Public hProcess As Integer
End Class

Private Declare Auto Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (ByVal SEI As SHELLEXECUTEINFO) As Integer

Public Sub ShowProperties(ByVal PathName As String)
Dim SEI As New SHELLEXECUTEINFO
SEI.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(GetType(SHELLEXECUTEINFO))
SEI.lpFile = PathName
SEI.fMask = &HC
SEI.lpVerb = "properties"
ShellExecuteEX(SEI)
End Sub




Contoh : Misalkan Anda inngin membuka properti file yang berlokasi di "D:\Documents\Picture\Logo\Gambar.jpg", tinggal ketikkan :
ShowProperties ("D:\Documents\Picture\Logo\Gambar.jpg")

Label: , , ,

Selasa, 19 Oktober 2010

Special Folder

Special folder atau folder khusus adalah folder yang digunakan Windows untuk menyimpan data tertentu, misalnya folder My Documents, My Music, Favorites, History, Recent, dll. Berikut ini adalah kode fungsi untuk mengetahui lokasi folder-folder tersebut.

[ VB 6.0 ]
Buat Module baru dan ketikkan :
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwnd As Long, ByVal nFolder As Long, Pidl As Long) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal Pidl As Long, ByVal FolderPath As String) As Long

Enum SpecialFolderConst
sfAppData = 26
sfCDBurning = 59
sfCookies = 33
sfDesktop = 0
sfFavorites = 6
sfFonts = 20
sfHistory = 34
sfLocalAppData = 28
sfMyDocuments = 5
sfMyMusic = 13
sfMyPictures = 39
sfMyVideo = 14
sfNetHood = 19
sfPrintHood = 27
sfProfile = 40
sfProgramFiles = 38
sfRecent = 8
sfSendTo = 9
sfStartMenu = 11
sfStartMenuPrograms = 2
sfStartUp = 7
sfSystem = 37
sfTempInternet = 32
sfTemplates = 21
sfWindows = 36
End Enum

Public Function SpecialFolder(ByVal SFConst As SpecialFolderConst) As String
Dim Pidl As Long
Dim s As String * 260
Dim l As Long
l = SHGetSpecialFolderLocation(0, SFConst, Pidl)

If l = 0 Then
l = SHGetPathFromIDList(Pidl, s)
If l = 1 Then
s = Left(Trim(s), InStr(s, Chr(0)) - 1)
SpecialFolder = Trim(s)
End If
End If
End Function


[ VB .NET ]
Dalam VB.NET sudah terdapat fungsi untuk mengetahui lokasi Special Folder, contoh kodenya (mengetahui lokasi folder My Documents) adalah :
s = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Tapi jika fungsi diatas kurang memadai, maka harus dibuat fungsi buatan sendiri seperti berikut :
Buat Module baru dan ketikkan :
Private Declare Function SHELL32_GetFolderPath Lib "shell32.dll" Alias "SHGetFolderPathA" (ByVal hwndOwner As Integer, ByVal nFolder As Integer, ByVal hToken As Integer, ByVal dwFlags As Integer, ByVal lpszPath As String) As Integer

Enum SpecialFolderConst
sfAppData = 26
sfCDBurning = 59
sfCookies = 33
sfDesktop = 0
sfFavorites = 6
sfFonts = 20
sfHistory = 34
sfLocalAppData = 28
sfMyDocuments = 5
sfMyMusic = 13
sfMyPictures = 39
sfMyVideo = 14
sfNetHood = 19
sfPrintHood = 27
sfProfile = 40
sfProgramFiles = 38
sfRecent = 8
sfSendTo = 9
sfStartMenu = 11
sfStartMenuPrograms = 2
sfStartUp = 7
sfSystem = 37
sfTempInternet = 32
sfTemplates = 21
sfWindows = 36
End Enum

Public Function SpecialFolder(ByVal SFConst As SpecialFolderConst) As String
Dim s As String = Space(260)
Dim i As Integer
i = SHELL32_GetFolderPath(0, SFConst, 0, 0, s)
If i = 0 Then
i = InStr(s, vbNullChar)
Return IIf(i > 0, Left(s, i - 1), s)
Else
Return ""
End If
End Function



Untuk contoh penggunannya (My Documents) ketikkan :
s = SpecialFolder(sfMyDocuments)

Label: , , , ,

Selasa, 14 September 2010

Memainkan Suara Tanpa Kontrol

Jika Anda ingin memutar suara dengan durasi / waktu yang pendek, seperti suara penekanan tombol, efek dalam game, atau pesan notifikasi. Sebenarnya tidak harus menggunakan kontrol player, cukup menggunakan sebuah fungsi pun bisa.

[ VB 6.0 ]
Ketik kode berikut di bagian '(Declarations)' dari Form :
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Untuk menggunakannya ketikkan :
sndPlaySound "Lokasi File WAV", 1

[ VB .NET ]
My.Computer.Audio.Play("Lokasi File WAV")

CATATAN : Untuk kelancaran, gunakan hanya file yang berformat WAV (*.wav)

Label: , , ,

Minggu, 12 September 2010

Memeriksa Eksistensi File dan Folder

Berikut ini adalah cara untuk memeriksa eksistensi atau ada tidaknya suatu file atau folder dalam komputer.

[ VB 6.0 ]
Kode memeriksa eksistensi File sebagai berikut :
Set b = CreateObject("Scripting.FileSystemObject")
If b.FileExists("Lokasi File") = True Then
'jika file eksis
End If
Kode memeriksa eksistensi Folder sebagai berikut :
Set b = CreateObject("Scripting.FileSystemObject")
If b.FolderExists("Lokasi Folder") = True Then
'jika folder eksis
End If


[ VB .NET ]
Kode memeriksa eksistensi File sebagai berikut :
If System.IO.File.Exists("Lokasi File") = True Then
'jika file eksis
End If
Kode memeriksa eksistensi Folder sebagai berikut :
If System.IO.Directory.Exists("Lokasi Folder") = True Then
'jika folder eksis
End If

Label: , , ,

Rabu, 11 Agustus 2010

Membuka File dengan DragDrop

Tutorial ini menunjukkan bagaimana cara ketika Anda men-drag file dari Windows Explorer kemudian men-drop-nya di aplikasi Anda, maka file tersebut akan dibuka atau dijalankan oleh aplikasi Anda.

Buat Form baru dengan sebuah kontrol TextBox (OLEDropMode=Manual) didalamnya. Di bagian 'Text1_OLEDragDrop' ketikkan :
Text1.Text = "Anda telah membuka file " & (Data.Files(1))
Sekarang coba Anda men-drag sebuah file yang ada di Windows Explorer, kemudian drag di atas kontrol TextBox aplikasi Anda.

Lalu bagaimana men-drag file yang lebih dari satu, sebagai contoh buat sebuah kontrol ListBox (OLEDropMode=Manual) dan ketikkan kode berikut di bagian 'List1_OLEDragDrop'.
For i = 1 To Data.Files.Count
List1.AddItem Data.Files(i)
Next i
Sekarang coba Anda men-drag beberapa file yang ada di Windows Explorer, kemudian drag di atas kontrol ListBox aplikasi Anda.

Jika Anda memerlukan proses filter jenis / ekstensi file, Anda bisa mengkombinasikannya dengan fungsi pemeriksaan ekstensi.

Label: , ,

Senin, 09 Agustus 2010

Mengetahui Ekstensi File

Ekstensi digunakan untuk memudahkan identifikasi jenis dari suatu file. Misalnya file musik biasanya ber-ekstensi mp3, wav, aac. Sedangkan untuk file gambar ber-ekstensi jpeg, gif.

Berikut fungsi yang digunakan untuk mengetahui atau mengambil ekstensi dari file.
Function Extension(ByVal FileName As String) As String
Extension = Split(FileName, ".")(Len(FileName) - Len(Replace(FileName, ".", "")))
End Function

Contoh penggunaannya :
s = Extension("Lokasi File")

Label: , , ,

Rabu, 09 Juni 2010

Browse Folder

Berikut ini adalah kode yang digunakan untuk membuka kotak dialog Browse Folder.

[ VB 6.0 ]
Tambahkan Reference 'Microsoft Shell Controls And Automation'.
Kode untuk memanggilnya adalah :
Dim sh As New Shell
Dim fo As Shell32.Folder
   
On Error GoTo Ero
Set fo = sh.BrowseForFolder(Me.hWnd, "Pilih Folder", 0)
MsgBox fo.Self.Path 'folder yang terpilih
Ero:
Bila Anda menginginkan hanya mencakup folder tertentu, misalnya hanya di "D:\" saja. Gantikan kode yang berwarna merah dengan kode berikut :
Set fo = sh.BrowseForFolder(Me.hWnd, "Pilih Folder", 0, "D:\")



[ VB .NET ]
Kode untuk memanggilnya adalah :
Dim dlg As New FolderBrowserDialog

'jk ingin yg MyDocuments saja, aktifkan kode d bawah ini
'dlg.RootFolder = Environment.SpecialFolder.MyDocuments

dlg.Description = "Pilih Folder"

If dlg.ShowDialog() = 1 Then
MsgBox(dlg.SelectedPath) 'folder yg terpilih
End If

Label: , , ,

Selasa, 01 Juni 2010

Membuka dan Menyimpan File Teks

Kegiatan / proses membuka dan menyimpan file teks biasanya digunakan untuk aplikasi sejenis Notepad, tapi selain itu juga dilakukan untuk menyimpan data aplikasi ke dalam file teks (*.txt). Sebelum melanjutkannya, siapkan sebuah Form dan kontrol TextBox (Multiline=True) didalamnya. Lalu siapkan sebuah file *.txt yang berisi, dan ingat-ingat lokasinya (dalam contoh dibawah ini, lokasi file-nya di D:\contoh.txt).
Berikut ini macam-macam metodenya :

[ VB 6.0 ]
  • Membuka Teks dari File
    Dim i As Integer
    i = FreeFile
    Open "D:\contoh.txt" For Input As #i
    Text1.Text = Input(LOF(i), i)
    Close #i

  • Membuka Teks dari File (dengan cara dibaca per baris)
    Dim i As Integer
    i = FreeFile
      
    Dim s As String, s1 As String
    Open "D:\contoh.txt" For Input As #i
    Do Until EOF(i)
    Input #i, s 'tiap baris d tampung d variabel "s"
    s1 = s1 & s & IIf(EOF(i), "", vbCrLf)
    Loop
    Close #i
      
    Text1.Text = s1

  • Menyimpan Teks ke File
    Dim i As Integer
    i = FreeFile
    Open "D:\contoh.txt" For Output As #i
    Print #i, Text1.Text
    Close #i

  • Menambahkan Teks ke File
    Dim i As Integer
    i = FreeFile
    Open "D:\contoh.txt" For Append As #i
    Print #i, Text1.Text
    Close #i




[ VB .NET ]
  • Membuka Teks dari File
    Dim i As Integer = FreeFile()
    FileOpen(i, "D:\contoh.txt", OpenMode.Input)
    TextBox1.Text = InputString(i, LOF(i))
    FileClose(i)

  • Membuka Teks dari File (dengan cara dibaca per baris)
    Dim i As Integer = FreeFile()

    Dim s, s1 As String
    FileOpen(i, "D:\contoh.txt", OpenMode.Input)
    Do Until EOF(i)
    Input(i, s) 'tiap baris d tampung d variabel "s"
    s1 &= s & IIf(EOF(i), "", vbCrLf)
    Loop
    FileClose(i)

    TextBox1.Text = s1

  • Menyimpan Teks ke File
    Dim i As Integer = FreeFile()
    FileOpen(i, "D:\contoh.txt", OpenMode.Output)
    PrintLine(i, TextBox1.Text)
    FileClose(i)

  • Menambahkan Teks ke File
    Dim i As Integer = FreeFile()
    FileOpen(i, "D:\contoh.txt", OpenMode.Append)
    PrintLine(i, TextBox1.Text)
    FileClose(i)

Label: , , ,

Minggu, 02 Mei 2010

Mengelola File dan Database

Pada sebuah aplikasi, database sering menjadi faktor penting. Sebagai contoh, sebuah aplikasi absensi tidak akan berjalan tanpa data absen, atau sebuah aplikasi kasir tidak akan berjalan tanpa data produk dan harga. Untuk menyimpan database, Anda mutlak memerlukan ruang pada media penyimpanan. Anda perlu menyimpan database pada file dan mengelolanya.
Konsep mengelola file dan database bisa jadi sama untuk semua bahasa pemrograman, tetapi jika Anda menggunakan Visual Basic .NET, beberapa teknik khusus perlu diketahui agar Anda dapat membuat aplikasi database yang baik dengan waktu yang relatif singkat.

Download artikel lengkapnya disini.

Label: , , , ,

Senin, 05 April 2010

Fungsi ShellExecute

Fungsi ShellExecute merupakan salah satu fungsi API yang memiliki kegunaan yang beragam, mulai dari menjalankan file sampai dengan membuka alamat website.

Di bagian '(Declarations)' dari Form ketikkan :
[ VB 6.0 ]
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
[ VB .NET ]
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer



Berikut macam-macam penggunaanya : (khusus untuk VB .NET, gantikan kode yang berwarna merah dengan kode "Me.Handle.ToInt32")

1). Membuka folder atau file.
ShellExecute Me.hwnd, "", "ALAMAT LOKASI FOLDER / FILE", "", "", vbNormalFocus

2). Menemukan folder / file dalam Windows Explorer.
ShellExecute Me.hwnd, "", "explorer.exe", "/select, ALAMAT LOKASI FOLDER / FILE", "", vbMaximizedFocus

3). Mencetak file.
ShellExecute Me.hwnd, "Print", "ALAMAT LOKASI FILE", "", "", vbNormalFocus

4). Membuka jendela pencarian / search berdasarkan folder.
ShellExecute Me.hwnd, "Find", "ALAMAT LOKASI FOLDER", "", "", vbNormalFocus

5). Membuka alamat website.
ShellExecute Me.hwnd, "", "ALAMAT WEBSITE", "", "", vbMaximizedFocus

6). Membuka aplikasi e-mail.
ShellExecute Me.hwnd, "", "mailto:ALAMAT E-MAIL", "", "", vbMaximizedFocus

Untuk lebih jelasnya tentang fungsi ini, download artikelnya disini.

Label: , , , ,