Kamis, 29 September 2011

Visual Basic 6.0 Menggunakan XP Style

Sebagaimana kita ketahui secara default visual basic 6.0 walaupun sudah dijalankan pada
Windows XP tetapi tampilannya masih windows Classic 98, belum dapat mengikuti style
Windows XP itu sendiri. Setidaknya kurang lebih ada 9009 jalan untuk membuat visual
basic 6.0 agar tampilannya mengikuti style xp atau theme yang sedang digunakan
(current theme). Beberapa diantaranya menggunakan ActiveX control, control internal,
manifest baik external ataupun internal yang menggunakan resource dan lain sebagainya.
to Focus
Fokus kita kali ini adalah vb6 menggunakan style xp dengan XP Manifest. Ya, benar kita
akan membahas xp manifest internal menggunakan resource ataupun xp manifest external
yang menggunakan XML (eXtended Markup Language). Ini adalah cara termudah agar
program kita dapat mengikuti style XP saat dijalankan di Windows XP.
Lisensi Dokumen:
Seluruh dokumen di IlmuKomputer.Org dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Org.
Komunitas eLearning IlmuKomputer.Org
Copyright © 2009 IlmuKomputer.Org
2
VB6 IDE
Ketik script xml berikut dalam text editor (seperti notepad) lalu simpan file tersebut
dengan nama vb6.exe.manifest.
Sudah disertakan dalam file supplemen e-book IlmuKomputer ini. (vb6xpstyle.zip) atau
Alternative Download: http://www.ziddu.com/download/2658154/vb6_manifest.zip.html
Setelah itu copy ke folder dimana visual basic 6.0 (vb6.exe) berada. Nah…, Sekarang
aktifkan aplikasi VB6 dan lihatlah IDE-nya sudah mengikuti style xp.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
     <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
          <assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.VB6.VBnetStyles"
type="win32"
/>
        <description>VBnet Manifest for VB6 IDE</description>
            <dependency>
                <dependentAssembly>
                    <assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
   </dependency>
      </assembly>
VB6 Project
Style Menggunakan XML
Project Folder: vb6xpxmlext
Jika sebelum Anda memasuki bab perihal pembahasan ini, yaitu dengan nekat telah mencopy
vb6.exe.manifest tadi ke folder project Anda dan me-rename-nya menjadi
project1.exe.manifest yang disandingkan dengan program Anda (project1.exe). Maka
secara otomatis file hasil compile-an tadi ngambek dan pastinya tidak mau jalan.
Speaker Anda mungkin hanya akan berbunyi (teeng, teeng) setiap berulang kali Anda
mencoba mengaktifkan program project1.exe Anda dan tidak tampil apa-apa. Lebih
buruk lagi muncul kotak dialog: error, please reinstall this program and bla…bla. bla..
Coba tebak apa yang salah? Yup.., benar XP Manifest tadi belum di inisialisasikan. Lalu
bagaimanakah cara membuat kode untuk menginisialisasikannya? Ya.. ya.. itu cukup
mudah. Tinggal ikuti prosedur dibawah ini.
1. Bukalah proyek baru menggunakan Standar.Exe.
2. Double klik Form1, dan ketikan kode berikut pada halaman kode.
3. Dari menu utama pilih menu Project Add Module. Pada kotak dialog Add
Module klik tombol Open. Atau dengan double klik icon Module.
4. Pada halaman kode Module1 ketikan kode berikut ini.
5. Kembali ke Form1, tambahkan sebuah objek command button.
Private Sub Form_Initialize()
InitCommonControls
End Sub
Public Declare Function InitCommonControls Lib "COMCTL32.DLL" _
() As Long
6. Compile project Anda.
7. Pastikan Anda sudah membuat project1.exe.manifest pada folder hasil compile. Nama
manifest yaitu mengikuti nama executable hasil kompilasi misal program Anda
Aqua.exe maka nama manifest-nya adalah Aqua.exe.manifest.
8. Jalankan program. Lihatlah program berjalan dengan normal dan tentunya dengan
style XP, atau style theme xp yang sedang Anda gunakan.
VB6 Project
Style Menggunakan XML Autowrite
Project Folder: vb6xpxmlxto
Apabila Anda diserang badai kemalasan, untuk men-copy file manifest ke setiap folder
project Anda atau barangkali untuk menangulangi file manifest di hapus oleh pengguna
program kita. Maka, bisa Anda gunakan module xpmanifest.bas (sudah saya modifikasi
sedikit agar setiap selesai inisial xp style maka file bla..bla..bla.exe.xpmanifest akan
secara otomatis dihapus).
Loh apa ndak sulit buatnya? Tidak kok, tinggal ikuti saja.
1. Bukalah proyek baru menggunakan Standar.Exe.
2. Double klik Form1, dan ketikan kode berikut pada halaman kode.
Private Sub Form_Initialize()
xpManifestInitial
End Sub
3. Dari menu utama pilih menu Project Add Module. Pada kotak dialog Add
Module klik tombol Open. Atau dengan double klik icon Module.
4. Pada halaman kode Module1 ketikan kode berikut ini.
'XP Manifest for visual basic 6.0
'Type External Autowrite & Stleath
Private Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type
Private Declare Function InitCommonControlsEx Lib "comctl32.dll"
(iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200
Public Sub xpManifestInitial()
On Error Resume Next
Dim F As String
F = App.Path & "\" & App.EXEName & ".exe.manifest"
If Dir(F) = "" Then
Open F For Output As #3
Print #3, "<?xml version=" & Chr(&H22) & "1.0" & _
Chr(&H22) & " encoding=" & Chr(&H22) & "UTF-8" & _
Chr(&H22) & " standalone=" & Chr(&H22) & "yes" & _
Chr(&H22) & " ?>"
Print #3, "<assembly xmlns=" & Chr(&H22) & _
"urn:schemas-microsoft-com:asm.v1" & Chr(&H22) & _
" manifestVersion=" & Chr(&H22) & "1.0" & Chr(&H22) & ">"
Print #3, vbTab & "<assemblyIdentity"
Print #3, vbTab & vbTab & "version=" & Chr(&H22) & _
"1.0.0.0" & Chr(&H22)
Print #3, vbTab & vbTab & "processorArchitecture=" & _
Chr(&H22) & "X86" & Chr(&H22)
Print #3, vbTab & vbTab & "name=" & Chr(&H22) & _
App.CompanyName & "." & App.ProductName & "." & _
App.EXEName & Chr(&H22)
Print #3, vbTab & vbTab & "type=" & Chr(&H22) & _
"win32" & Chr(&H22) & " />"
Print #3, vbTab & "<description>" & App.Comments & _
"</description>"
Print #3, vbTab & "<dependency>"
Print #3, vbTab & "<dependentAssembly>"
Print #3, vbTab & "<assemblyIdentity"
Print #3, vbTab & vbTab & "type=" & Chr(&H22) & _
"win32" & Chr(&H22)
Print #3, vbTab & vbTab & "name=" & Chr(&H22) & _
"Microsoft.Windows.Common-Controls" & Chr(&H22)
Print #3, vbTab & vbTab & "version=" & Chr(&H22) _
& "6.0.0.0" & Chr(&H22)
Print #3, vbTab & vbTab & "processorArchitecture=" & _
Chr(&H22) & "X86" & Chr(&H22)
Print #3, vbTab & vbTab & "publicKeyToken=" & _
Chr(&H22) & "6595b64144ccf1df" & Chr(&H22)
Print #3, vbTab & vbTab & "language=" & Chr(&H22) & _
"*" & Chr(&H22) & " />"
Print #3, vbTab & "</dependentAssembly>"
Print #3, vbTab & "</dependency>"
Print #3, "</assembly>"
Print #3, ""
Close #3
Shell App.Path & "\" & App.EXEName & ".exe", vbNormalFocus
DoEvents
End
End If
5. Kembali ke Form1, tambahkan sebuah objek command button.
6. Compile project Anda. Jalankan dan lihatlah hasilnya.
Dengan cara ini Anda tak perlu membuat file manifest dengan cara manual karena file
manifest akan dibuat dan kemudian di hapus oleh program. Lebih tepatnya pada sub
xpManifestInitial yang dipanggil pada Form_Initialize().
VB6 Project
Style Menggunakan Resource
Project Folder: vb6xpxmlres
Jika boleh berkata jujur, sebenarnya saya tahu cara ini saat sebelum mendekompilasi
program “123 Flash Compressor” menggunakan VBReformer. Pertama saya lihat
program tersebut dengan PEiD ternyata diketahui program tersebut ditulis menggunakan
VB6. Saya lihat stylenya kok memakai XP, tetapi tidak ada file manifest-nya. Saya
berpikir, barangkali menggunakan resource dan ternyata benar saat saya buka dengan
Resource Hacker. Langsung saja saya klik menu Action Save Resource As a *.res
File. Saya coba di VB6 tentunya dengan inisialisasi komponen comctl32.dll dan berhasil.
Dim Ticce As tagInitCommonControlsEx
Ticce.lngSize = LenB(iccex)
Ticce.lngICC = ICC_USEREX_CLASSES
InitCommonControlsEx Ticce
Kill App.Path & "\" & App.EXEName & ".exe.manifest"
On Error GoTo 0
End Sub
Langkah-langkah cara membuatnya adalah sebagai berikut.
1. Bukalah proyek baru menggunakan Standar.Exe.
2. Double klik Form1, dan ketikan kode berikut pada halaman kode.
3. Dari menu utama pilih menu Project Add Module. Pada kotak dialog Add
Module klik tombol Open. Atau dengan double klik icon Module.
4. Pada halaman kode Module1 ketikan kode berikut ini.
5. Dari menu utama pilih menu Project Add File… (Ctrl + D). Cari file
xpmanifest.res (sudah disertakan dalam file supplement e-Book ini).
6. Kembali ke Form1, tambahkan sebuah objek command button.
7. Compile project Anda.
8. Jalankan program. Lihatlah program berjalan dengan normal dan tentunya dengan
style XP, atau style theme xp yang sedang Anda gunakan.
Dengan cara ini Anda tak lagi perlu membuat xpmanifest secara manual ataupun secara
automatis menggunakan kode program, karena xpmanifest telah tersedia sebagai resource
dengan nama file xpmanifest.res.
Private Sub Form_Initialize()
InitCommonControls
End Sub
Public Declare Function InitCommonControls Lib "COMCTL32.DLL" _
() As Long
VB6 Project
Style Menggunakan XML
Project Folder: vb6xpvoodo
Dengan menggunakan module ModXP.bas yang ditulis oleh Voodoo Attack!!. Kita dapat
menggunakan XP Style tidak hanya untuk aplikasi yang ditulis dengan Visual Basic 6.0
tetapi juga Visual Basic 5.0
Cara membuatnya adalah sebagai berikut.
1. Bukalah proyek baru menggunakan Standar.Exe.
2. Double klik Form1, dan ketikan kode berikut pada halaman kode.
3. Dari menu utama pilih menu Project Add Module. Klik tab Existing . Carilah file
ModXP.bas (sudah disertakan dalam file supplemen e-Book ini). Dan klik open.
4. Kembali ke Form1, tambahkan sebuah objek command button.
5. Compile project Anda.
6. Jalankan program. Lihatlah program berjalan dengan normal dan tentunya dengan
style XP, atau style theme xp yang sedang Anda gunakan.
ModXP.bas XPStyle Module yang saya pergunakan adalah versi 2.00
Private Sub Form_Initialize()
XPStyle
End Sub
Info .Net
Supplemen e-Book ini (vb6xpstyle.zip) dapat Anda peroleh pada website
IlmuKomputer.Org. Ketikan http://www.ilmukomputer.org pada browser favorit Anda.
Lihat pada kolom daftar penulis, cari nama ‘Prasetyo Priadi’ klik link tersebut. Maka
Anda akan dibawa ke halaman list e-Book yang pernah di publish oleh penulis. Cari judul
e-Book ini (“Visual Basic 6.0 Menggunakan XP Style”). Klik link tersebut. Dengan
segera Anda akan dihadapkan dengan halaman review singkat e-Book ini. Klik link
vb6xpstyle.zip untuk men-download file supplemen.
Penutup
Semoga para pembaca sekalian yang budiman, mendapat tambahan wawasan
dengan membaca e-Book ini. Peribahasa mengatakan 'Tiada gading yang tak retak' ::
Berarti semua gading retak ? Tidak juga , tapi jika ada maka sudilah kiranya pembaca
mengirimkan kritik dan saran yang membangun demi perbaikan e-Book ini agar supaya
menjadi lebih baik untuk masa kedepannya dan untuk perkembangan ilmu pengetahuan.
Kritik, saran dan tegur sapa dapat Anda kirimkan ke alamat e-Mail.
erick.hutagaol@yahoo.com