Visual Basic 6 – Menemukan Folder Istimewa Windows XP

Pendahuluan & Latar Belakang

Apakah teman-teman pernah menemukan aplikasi kecil atau program terinstal yang cukup gede? Program atau aplikasi ini yang dijalankan dengan windows XP kadang bisa menemukan folder-folder tertentu tanpa harus memberikan spesifikasi komplit path folder tersebut. Seperti install aplikasi shollu (ebsoft.web.id) misalnya, aplikasi ini langsung menunjukkan path program files windows XP tanpa user / pengguna memberikan path “C:\program files”. Artinya aplikasi akan mendeteksi kalau sistem operasi dipasang / diinstal di Drive “C:\”. Berbeda dengan aplikasi yang memberikan spesifkasi statis “C:\program files”, apa yang terjadi? Hal ini akan berakibat aplikasi tidak berjalan untuk sistem Windows XP yang berjalan pada Drive “D:” (seperti laptop saya, hehehe).

Dari sinilah, saya berani memberikan pengalaman menarik dalam artikel Visual Basic 6 – Menemukan Folder Istimewa Windows XP ini. Jadi, intinya, saya pernah bikin aplikasi VB untuk antarmuka kendali peralatan listrik terpusat (curhat dikit). Aplikasi ini saya buat dengan folder yang saya sediakan sendiri misal “C:\program files\Kendali”. Saat windows XP berjalan di Drive “D:” maka otomatis path Program Files ada di “D:\Program Files”, dari sini timbul error (wadohhh…). Akhirnya, buka-buka buku ketemu juga rutin / prosedur yang membaca folder-folder khusus windows XP.

Folder khusus tersebut bisa diakses oleh aplikasi VB dengan Windows API (Aplication Programming Interface). Jadi, penulis program aplikasi (programmer) bisa langsung mebacakan folder istimewa tersebut di aplikasinya. Untuk membaca folder istimewa, programmer tinggal memasukkan kode folder khusus (Tipe Long) ke fungsi yang dimaksud tadi. Maka, Windows akan memberikan nilai string folder istimewa tersebut.

Oke langsung ke PRAKTEK.vb6

Siapkan bahan-bahan berikut :

  • – Windows XP, sudah jalan mestinya.
  • – IDE VB 6 (yang original lebih afdol).
  • – Form 1 lembar.
  • – Text 1 control
  • – Timer 1 control

Langkah-langkah :

  1. – Nyalakan windows XP (hehehe pastinya komputer yang dinyalakan).
  2. – Buka IDE Vb 6 (kalau pecandu, pasti tahu cara bukanya).
  3. – Sediakan Form (nama form terserah).
  4. – Pasang control textbox ke form, jadikan multiline, dan bothscroll.
  5. – Pasang timer jadikan interval 100, dan true.

Ketik kode menurut selera dengan saran penyajian berikut ini.

Private Type SHITEMID
cb As Long
abID As Byte
End Type

Private Type ITEMIDLIST
mkid As SHITEMID
End Type

Private Declare Function ShellAbout Lib "shell32.dll" Alias _
"ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, _
ByVal szOtherStuff As String, ByVal hicon As Long) As Long

Private Declare Function SHGetSpecialFolderLocation _
Lib "shell32.dll" (ByVal hwnowner As Long, ByVal nFolder As Long, _
pidl As ITEMIDLIST) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszpath As String) As Long

Private Declare Function CopyFile Lib "kernel32.dll" _
Alias "CopyFileA" (ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, ByVal bFileIfExists As Long) As Long

Public Function GetSpecialFolder(CSIDL As Long) As String
Dim r As Long
Dim idl As ITEMIDLIST
r = SHGetSpecialFolderLocation(100, CSIDL, idl)
If r = Noerror Then
Path$ = Space$(512)
r = SHGetPathFromIDList(ByVal idl.mkid.cb, ByVal Path$)
GetSpecialFolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
GetSpecialFolder = ""
End Function

Private Sub Form_Load()
Text1.SelText = "BERIKUT KODE2 FOLDER ISTIMEWA WINDOWS XP...." + _
vbNewLine + "KODE YANG STRING KOSONG TIDAK TERPAKAI, ABAIKAN" + _
vbNewLine + vbNewLine
End Sub

Private Sub Timer1_Timer()
Static I As Integer
If I < 62 Then Text1.SelText = CStr(I) + ". " + _
UCase(GetSpecialFolder(CLng(I))) + vbNewLine
I = I + 1
If I = 120 Then
Timer1.Enabled = False
End
End If
End Sub

Code mendapatkan string adalah

GetSpecialFolder(CLng(I)

Variable I adalah nilai Integer, jadi harus diconversi ke Long dengan CLng. Fungsi ini akan menghasilkan string folder khusus misal “C:\Program Files” (jika di C:) tapi jika di D: maka akan memberikan string “D:\Program Files”. Tentunya untuk folder utama aplikasi kita bisa ditambahkan, misal aplikasi ada di Kendali maka code akan :

Folder = GetSpecialFolder(CLng(I)+"\Kendali" 'Folder utama aplikasi

Oke, mudah-mudahan bisa membantu dan jadi jelas. Silahkan download aplikasi Get Special Folder Windows XP, terlampir.

Lampiran, DownloadKetentuan Pemakaian

Download Source ... silahkan baca ketentuan pemakaian dalam tab di samping ini.

  • Kode ini bersifat bebas disebarkan untuk tujuan pembelajaran saja.
  • Kode ini merupakan akses ke sistem Windows XP, dan tidak ada garansi kerusakan, oleh karena itu kerusakan dan kesalahan kode yang menyebabkan tidak berfungsinya komputer Anda maka di tanggung sendiri.

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.