Aplikasi dengan style Xp menggunakan VB6

By wass

Biasanya membuat program di VB6 agak membosankan, karena tampilannya tidak terlalu bagus. Tetapi kini dengan menambahkan kode berikut tampilannya menjadi sesuai dengan skin Xp saat dijalankan di Xp.

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 WriteManifest()
    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
    Dim Ticce As tagInitCommonControlsEx
    Ticce.lngSize = LenB(iccex)
    Ticce.lngICC = ICC_USEREX_CLASSES
    InitCommonControlsEx Ticce
    On Error GoTo 0
End Sub

Save code diatas pada file xp.bas. Tambahkan pada project yang ingin menggunakan style Xp. Kemudian tambahkan kode berikut dalam kode form utama.

Private Sub Form_Initialize()
    WriteManifest
End Sub

Agar tampilan form yang diedit juga bertema sesuai dengan tampilan saat run time maka simpan kodeĀ  di bawah ini pada folder instalasi VB6 anda, misal: C:\Program Files\Microsoft Visual Studio\VB98, sebagai file vb6.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    type="win32"
    name="Microsoft.Windows.Editeur"
    processorArchitecture="X86"
    version="4.4.0.0"
/>
<description>Microsoft Visual Basic 6.0</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            language="*"
            processorArchitecture="X86"
            version="6.0.0.0"
            publicKeyToken="6595b64144ccf1df"
        />
    </dependentAssembly>
</dependency>
</assembly>

Salam.

4 Responses to “Aplikasi dengan style Xp menggunakan VB6”

  1. vblovers Says:

    mas,file yg diawali ma syntax ni,(Private Type tagInitCommonControlsEx)
    tu di paste di vb6 kan ya..? ato di notepad..?
    trus form nya di simpen pke nama .bas..?
    gtu..?

    trus yg assembly tu,
    kita paste di vb6 juga..?
    ato buat di notepad..?

    trus klo yank (Private Sub Form_Initialize())
    tu ditambahin di form project kita kan ya..?

    maap byk naya ya mas..
    baru belajar soale..
    makasi ya..
    dah mau share yg beginian..
    thx :)

  2. was Says:

    di vb6 , tepatnya pada file module dengan nama xp.bas. jadi xp.bas itu nama module.

    assembly??? diatas ga ada kode assembly. yg ada xml yang disimpan pada file dengan nama: vb6.exe.manifest

    salam

  3. was Says:

    o iya lupa. bener. yang (Private Sub Form_Initialize()) ditambah dalam form project. salam

  4. vblovers Says:

    wah makasi ya mas,
    belom saya coba..
    tp kemungkinan bisa berhasil,
    uda ada sedikit bayangan..
    thx ya
    :)

Leave a Reply