Sabtu, 20 Oktober 2012

Live Streaming MNCTV

Live Streaming ANTV

Live Streaming TVOne

Live Sreaming TVRI Nasional

Live Streaming KompasTV

Live Streaming GlobalTV

Jumat, 19 Oktober 2012

Live Streaming RCTI


Live Streaming TV Online With Mivo TV

Mengurangi Ukuran Aplikasi

Ketika pengurangan ukuran aplikasi merupakan hal yang penting, ada beberapa cara yang dapat Anda gunakan untuk membuat coding Anda lebih ringkas. Selain untuk mengurangi ukuran aplikasi di memori, hampir semua teknik optimasi berikut juga akan mengurangi ukuran file .exe. Seperti keuntungan yang saling melengkapi, sebuah aplikasi dengan ukuran yang lebih kecil akan lebih cepat diload ke memori.

Banyak teknik optimasi menggunakan cara dengan menghapus bagian elemen yang tidak penting dari coding, sementara Visual Basic secara otomatis menghapus elemen-elemen tersebut ketika Anda meng-compile aplikasi Anda, sehingga tidak ada alasan untuk membatasi panjang atau jumlah dari elemen-elemen berikut ini, karena sama sekali tidak berpengaruh dengan ukuran aplikasi:

  • Nama-nama pengenal (Identifier names)
  • Komentar (Comments)
  • Baris kosong (Blank lines).
Tidak ada satupun efek dari elemen-elemen di atas mempengaruhi ukuran dari aplikasi Anda di memori ketika dijalankan sebagai file .exe.

Elemen-elemen lain, seperti variables, forms, dan prosedur, memakan banyak tempat di memori. Ada beberapa cara yang dapat Anda gunakan untuk mengurangi penggunaan memori yang digunakan oleh aplikasi Anda ketika dijalankan sebagai file exe. Cara ini juga dapat mengurangi ukuran coding Anda:


  • Kurangi Jumlah Form yang Diload.
  • Kurangi Jumlah Control.
  • Gunakan Label Menggantikan TextBox.
  • Biarkan Data di File Tersimpan di Disk, dan Di-load Ketika Dibutuhkan Saja.
  • Atur/Organisasikan Module Anda.
  • Pertimbangkan Alternatif untuk Menggunakan Data Bertipe Variant.
  • Gunakan Array Dinamik dan Hapus Jika Tidak Digunakan.
  • Kosongkan Alokasi yang Digunakan oleh String Atau Variabel Object.
  • Hapus "Dead Code" dan Variabel yang Tidak Pernah Digunakan. 

Berikut penjelasan setiap butir di atas.
  • Kurangi Jumlah Form yang Diload
Setiap form yang diload, apakah kelihatan atau tidak, memakan sejumlah memori (bervariasi dengan jumlah dan tipe dari control yang ada di form, ukuran bitmaps di form, dan sebagainya). Gunakanlah perintah untuk menge-load form hanya jika Anda ingin menampilkannya, dan gunakanlah perintah untuk meng-unload form (daripada menyembunyikannya (Hide)) ketika Anda sudah tidak membutuhkannya. Ingatlah, bahwa referensi apapun yang berkaitan kepada properties, methods, atau controls di sebuah form, atau sebuah variabel yang terdapat di suatu form yang dideklarasikan sebagai New, menyebabkan Visual Basic me-load form tersebut.

Ketika Anda meng-unload sebuah form menggunakan metode Unload, hanya bagian dari memori yang digunakan oleh form ini yang dibebaskan. Untuk membebaskan semua memori, hilangkan referensi ke form tersebut dengan menggunakan kata kunci "Nothing":


Code::
Set Form = Nothing
  • Kurangi Jumlah Control
Ketika Anda membuat aplikasi, cobalah untuk menempatkan sedikit mungkin control dalam sebuah form. Jumlah control sebenarnya tergantung pada tipe control dan juga sistem yang digunakan, tapi pada umumnya, form yang memiliki banyak control di dalamnya akan memperlambat dalam pemunculan. Cara untuk mengatasi hal ini adalah dengan menggunakan control array sebisa mungkin, daripada membuat banyak control yang memiliki tipe sama di dalam sebuah form pada saat pendisainan form.

Untuk informasi lebih lanjut mengenai control arrays, lihat "Working with Control Arrays" dalam "Using Visual Basic’s Standard Controls."

  • Gunakan Label menggantikan TextBox
Kontrol Label menggunakan sumber daya Windows lebih sedikit dibandingkan TextBox, jadi sebaiknya gunakanlah Label untuk menggantikan TextBox sebisa mungkin. Sebagai contoh, jika Anda membutuhkan sebuah control yang bersifat hanya untuk menampilkan teks di dalam sebuah form, akan lebih efisien dengan menggunakan Label.

Bahkan sebuah form entri data yang membutuhkan banyak TextBox dapat menggunakan cara ini. Anda dapat membuat sebuah Label untuk setiap field dan hanya menggunakan sebuah TextBox untuk entri data, pindahkan TextBox ini ke lokasi Label berikutnya ketika Textl mendapat event LostFocus. Untuk membuktikannya, buatlah satu project baru dengan satu form. Tambahkan 3 Label, 1 TextBox, dan 1 Commandbutton ke dalam form tersebut. Buat ukuran ketiga label sama dengan ukuran textbox, lalu copy-kan coding berikut ke editor form yang bertalian.


Code::
Dim i As Integer
 
Private Sub Command1_Click()
  If MsgBox("Data yang Anda isikan: " & vbCrLf & _
         "Label1 = " & Label1.Caption & vbCrLf & _
         "Label2 = " & Label2.Caption & vbCrLf & _
         "Label3 = " & Label3.Caption, _
         vbInformation + vbYesNo, "Simpan") = vbYes Then
     MsgBox "Data telah disimpan!", vbInformation, "OK"
  Else
     EditData
  End If
End Sub
 
Private Sub Form_Load()
  i = 0
  Text1 = ""
  Command1.Caption = "&Simpan"
  Label1 = "":  Label2 = "":  Label3 = ""
  Label1.BorderStyle = 1
  Label2.BorderStyle = 1
  Label3.BorderStyle = 1
  Text1.Move Label1.Left, Label1.Top
End Sub
 
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then Text1_LostFocus
End Sub
 
Private Sub Text1_LostFocus()
   i = i + 1
   If i = 0 Then
     'Update Label1
     Label1.Caption = Text1.Text
     'Pindahkan Textbox ke Label pertama
     Text1.Move Label1.Left, Label1.Top
     'Update isi Text1
     Text1.Text = Label1.Caption
     Text1.SetFocus
   ElseIf i = 1 Then
     'Update Label1
     Label1.Caption = Text1.Text
     'Pindahkan Textbox ke Label berikutnya
     Text1.Move Label2.Left, Label2.Top
     'Update isi Text1
     Text1.Text = Label2.Caption
   ElseIf i = 2 Then
     'Update Label1
     Label2.Caption = Text1.Text
     'Pindahkan Textbox ke Label berikutnya
     Text1.Move Label3.Left, Label3.Top
     'Update isi Text1
     Text1.Text = Label3.Caption
   ElseIf i = 3 Then
     'Update Label1
     Label3.Caption = Text1.Text
     'Sembunyikan Text1, karena ini terakhir
     Text1.Visible = False
     'Update isi Text1 dgn Label1 jika ingin diulang
     Text1.Text = Label1.Caption
   End If
End Sub
 
Sub EditData()
  i = -1  'Kembali lagi dari awal, agar menjadi 0
          '(-1 + 1)...
  Text1.Visible = True
  Text1_LostFocus 'Panggil prosedur Text1_LostFocus
End Sub


Anda dapat membuat sebuah Label seperti tampilan TextBox dengan mengeset property BackColor dan BorderStyle. Walaupun cara ini membutuhkan coding (lihat di dalam prosedur Form_Load di atas), hal ini dapat mengurangi sumber daya yang digunakan untuk sebuah form yang memiliki banyak field TextBox.
  • Biarkan Data di File Tersimpan di Disk, dan Di-load Ketika Dibutuhkan Saja
Data yang langsung dimasukkan ke dalam aplikasi Anda saat design time (seperti property atau seperti string dan bilangan yang dimuat langsung di source code) memerlukan memory di aplikasi saat run time. Anda dapat mengurangi memori dengan me-load data dari file atau sumber lainnya tersebut saat run-time. Hal yang sama juga berlaku untuk variabel berupa gambar bitmaps dan strings.

Untuk informasi lebih lanjut mengenai cara menambahkan sumber daya ke aplikasi Anda, lihat "Resource Files" pada "Advanced Programming Features."  

  • Atur/Organisasikan Module Anda
Visual Basic me-load Module hanya saat ada "permintaan", itulah mengapa, aplikasi me-load sebuah module ke memori hanya ketika coding memanggil sebuah prosedur yang terdapat di dalam module tersebut. Jika Anda tidak pernah memanggil sebuah prosedur yang terdapat di suatu module, Visual Basic tidak akan pernah juga me-load module ini. Menempatkan beberapa prosedur yang saling berhubungan dalam satu module yang sama menyebabkan Visual Basic akan me-load satu module ini di saat diperlukan saja. Sangat efisien, bukan?  
  • Pertimbangkan Alternatif untuk Menggunakan Data Bertipe Variant
Data dengan tipe Variant secara umum memang fleksibel, tetapi data ini juga lebih besar dibandingkan dengan data tipe lainnya. Ketika Anda harus memperhitungkan akibat penggunaan setiap byte yang tersisa di aplikasi Anda, pertimbangkanlah untuk mengganti data bertipe Variant -- khususnya juga array bertipe Variant -- dengan tipe data lainnya.

Sebuah data yang bertipe Variant menggunakan tempat 16 bytes, dibandingkan dengan 2 bytes untuk yang bertipe Integer, dan 8 bytes untuk bertipe Double. Variabel String menggunakan 4 bytes ditambah 1 byte setiap karakternya di string, tetapi setiap data Variant yang terdiri atas sebuah string memerlukan 16 bytes ditambah 1 byte setiap karakternya di dalam string tersebut. Karena data variant sangat besar, variabel Variant yang bertipe string sering membuat masalah ketika digunakan sebagai variabel Local atau argumen ke sebuah prosedur, karena banyak menggunakan ruang stack.


Bagaimanapun dalam beberapa kasus, menggunakan data bertipe lainnya "memaksa" Anda untuk menambahkan lebih banyak coding untuk menggantikan ke-fleksibilitas-an yang terdapat pada tipe data Variant, sehingga secara murni bisa dikatakan tidak ada pengurangan ukuran aplikasi yang berarti. 

  • Gunakan Array Dinamik dan Hapus Jika Tidak Digunakan
Pertimbangkanlah untuk menggunakan array dinamis menggantikan array statik (berukuran tetap). Ketika Anda tidak lagi membutuhkan data yang tersimpan di sebuah array dinamis, gunakan "Erase" atau "ReDim Preserve" untuk menghapus data yang sudah tidak dibutuhkan, dan bebaskan/kembalikan memori yang digunakan oleh array. Atau sebagai contoh, Anda apat membebaskan ruang yang digunakan oleh array dinamis dengan coding berikut ini:
Code::
  Erase MyArray


Sementara menggunakan "Erase" untuk menghapus array, ReDim Preserve membuat array bisa lebih kecil tanpa harus kehilangan isinya:

Code::
  ReDim Preserve MyArray(10, smallernum)

Menghapus sebuah array statik tidak akan mengembalikan atau membebaskan memori yang digunakan oleh array tersebut — tapi hanya menghilangkan nilai dari setiap elemen array ini. Jika setiap elemen array merupakan string, atau sebuah data bertipe Variant yang di dalamnya mengandung sebuah array string, maka menghapus array akan mengembalikan memori dari string atau data Variant itu, bukan memori yang digunakan oleh array tersebut.

  • Kosongkan Alokasi yang Digunakan oleh String atau Variabel Object

Ruang yang digunakan oleh variabel string Local (non Statik) dan variabel array, secara otomatis dibebaskan ketika prosedur ini selesai. Tetapi, variabel string dan array global yang dideklarasikan di dalam module tetap ada selama program Anda dijalankan. Jika Anda tetap berusaha untuk menjaga agar ukuran aplikasi sekecil mungkin, Anda harus membebaskan ruang yang digunakan oleh variabel-variabel ini segera setelah digunakan. Anda membebaskan ruang yang digunakan oleh string ini dengan cara membuat string kosong (panjangnya nol):

Code::
  SomeStringVar = ""      'Bebaskan ruang spasi yang digunakan

Sama dengan hal tersebut, Anda dapat membebaskan beberapa (tapi tidak semua) dari ruang yang digunakan oleh sebuah variabel object dengan mengesetnya menjadi "Nothing". Sebagai contoh, untuk menghapus sebuah variabel object bertipe Recordset, dapat dilakukan dengan cara:
Code::
  Private rs As New RecordSet
                       '<-- Coding untuk inisialisasi dan penggunaannya di sini...
     rs.Close           'Tutup Recordset
     Set rs = Nothing   'Set referensi ke objek tersebut menjadi Nothing   

Jika Anda tidak mengeset secara explisit variabel object menjadi Nothing, sebuah referensi ke objek tersebut akan tetap ada di memori sampai aplikasi Anda selesai dijalankan; dan untuk sebuah aplikasi yang menggunakan banyak objek seperti ini, dapat mengakibatkan banyak memakan memori dan memperlambat dalam performansi aplikasi.

Anda juga dapat membebaskan ruang dengan cara meng-unload form dan mengeset-nya menjadi "Nothing" daripada menyembunyikannya dengan "Hide", sementara mereka sudah tidak dibutuhkan lagi.
  • Hapus "Dead Code" dan Variabel yang Tidak Pernah Digunakan
Ketika Anda membangun dan memodifikasi aplikasi Anda, mungkin Anda menyisakan "dead-code", yaitu prosedur yang tidak pernah dipanggil dari coding manapun di aplikasi Anda. Mungkin juga Anda telah mendeklarasikan variabel yang tidak pernah digunakan. Walaupun Visual Basic menghapus konstanta yang tidak pernah digunakan, hal ini tidak menghapus variabel yang tidak digunakan tersebut beserta "dead-code" ketika Anda membuat aplikasi Anda menjadi sebuah file exe. Pertimbangkan dalam menemukan dan menghapus prosedur dan variabel yang tidak pernah digunakan. Sebagai contoh, statement Debug.Print diabaikan ketika run-time .exe, kadang-kadang digunakan setelah menjadi file exe.

Statement Debug.Print dengan string atau variabel seperti argument tidak dicompile ketika Anda membuatnya menjadi file exe. Bagaimanapun, ketika statement Debug.Print milik sebuah fungsi yang dipanggil sebagai argument, statement Debug.Print ini akan diabaikan oleh compiler, tetapi pada pemanggilan fungsi tetap ikut dicompile. Kemudian, ketika aplikasi dijalankan, fungsi ini dipanggil, tetapi hasil pengembaliannya diabaikan karena fungsi yang tampak sebagai argument untuk Debug.Print akan "mengangkat" ruang dan siklus waktu dalam sebuah file exe, hal ini mungkin berguna untuk menghapus statement tadi sebelum Anda membuat menjadi file exe.

Gunakan perintah Find di menu Edit untuk mencari referensi ke sebuah variabel. Atau, jika Anda menggunakan statement "Option Explicit" dalam setiap module/form, Anda dapat dengan cepat menemukan jika sebuah variabel digunakan di aplikasi Anda dengan cara menghapus atau menutupnya dengan komentar di pendeklarasiannya, lalu coba jalankan aplikasi Anda. Jika variabel tersebut digunakan, Visual Basic akan menampilkan pesan kesalahan, sedangkan jika Anda tidak menemukan pesan kesalahan, berarti variabel tersebut tidak digunakan.

Untuk informasi lebih lanjut mengenai statement Debug.Print, lihat "Printing Information in the Immediate Window" pada "Debugging Your Code and Handling Errors."


Sumber: MSDN Library - Januari 2000 (Reducing Code Size)

Mempercepat Tampilan Display Program Anda

Karena Microsoft Windows merupakan antar muka yang bersifat grafis, kecepatan graphics dan pengoperasian tampilan lainnya penting sekali diperhatikan dalam mempercepat pemunculan aplikasi. Pemunculan form yang lebih cepat dan "penggambaran form" (event Paint), nampaknya akan membuat aplikasi Anda dirasakan tampil lebih cepat oleh pemakai. Ada beberapa cara yang dapat Anda gunakan untuk mempercepat pemunculan aplikasi Anda, yaitu sebagai berikut:
  • Set property ClipControls dari setiap objek kontainer (Form, Frame, Picture) menjadi False.
  • Gunakan property AutoRedraw dengan tepat.
  • Gunakan control Image menggantikan control PictureBox.
  • Gunakan Line menggantikan PSet.
  • Sembunyikan controls saat mengeset properti guna menghindari penggambaran ulang (repaint).
Penjelasan untuk setiap cara di atas dapat Anda lihat di bawah ini.

  • Set property ClipControls dari setiap objek kontainer (Form, Frame, Picture) menjadi False

Kecuali Anda sedang menggunakan methode graphics (Line, PSet, Circle, dan Print), Anda seharusnya mengeset property ClipControls menjadi False (default=True) untuk form dan semua frame dan control picturebox (hal ini mungkin menyebabkan hasil yang tidak dapat diprediksi jika coding Anda terdiri dari methode graphics yang menggambar di belakang control-control lainnya). Ketika ClipControls diset menjadi False, Visual Basic tidak menggambar ulang controls dengan background sebelum menggambar control-control itu sendiri. Pada form yang terdiri dari banyak control, hasil kecepatan yang didapat sangat berarti sekali.

Untuk informasi lebih lanjut, lihat "Layering Graphics with AutoRedraw and ClipControls" dalam "Working with Text and Graphics."
 
  • Gunakan property AutoRedraw dengan tepat 
Ketika property AutoRedraw diset ke True untuk sebuah form atau control, Visual Basic menyimpan sebuah bitmap untuk menggambar ulang form atau control tersebut. Walaupun hal ini meningkatkan kecepatan penggambaran ulang (sebagai contoh, ketika form atau control dibebaskan setelah sebuah form atau jendela yang menyimpannya dihapus), hal ini memperlambat methode graphics. Visual Basic harus membentuk methode graphics pada AutoRedraw bitmap dan meng-copy bitmap yang ada ke layar. Proses ini juga menggunakan sejumlah memory.

Jika aplikasi Anda menghasilkan graphics yang cukup kompleks tapi tidak sering mengubahnya, setting AutoRedraw menjadi True adalah pilihan yang tepat. Tapi jika aplikasi Anda menggambar graphics yang harus berubah setiap saat, akan lebih baik jika Anda mengeset property AutoRedraw menjadi False dan membentuk methode graphics untuk form atau control di event Paint.


Untuk informasi lebih lanjut, lihat "Layering Graphics with AutoRedraw and ClipControls" di "Working with Text and Graphics."  

  • Gunakan control Image menggantikan control PictureBox 

Optimasi ini meningkatkan kecepatan dan mengurangi ukurang aplikasi Anda; gunakan hal ini sedapat mungkin. Ketika Anda menampilkan pictures dan mengklik aksi events mouse actions padanya, gunakan control image menggantikan picture box. Jangan gunakan sebuah control picturebox kecuali Anda membutuhkan kemampuan yang hanya disediakan oleh picture box, seperti methode graphic, kemampuan untuk memuat controls lainnya, atau dynamic data exchange (DDE). 
  • Gunakan Line menggantikan PSet
Methode Line ini lebih cepat dibandingkan suatu set methode PSet. Hindari menggunakan methode PSet dan pengelompokan sekumpulan nilai menjadi sebuah methode Line. Kontrol Shape dan Line sangat tepat untuk elemen-elemen yang bersifat grafis yang jarang berubah; sementara graphics yang kompleks, atau graphics yang sering berubah, umumnya terbaik ditangani dengan menggunakan methode graphics.    
  
  • Sembunyikan controls saat mengeset properti guna menghindari penggambaran ulang (repaint)
Setiap penggambaran ulang (repaints) merupakan sesuatu yang berharga. Repaints yang lebih sedikit di Visual Basic harus dilakukan untuk mempercepat pemunculan aplikasi Anda. Salah satu cara untuk mengurangi jumlah repaints adalah membuat controls tidak kelihatan ketika Anda memanipulasinya. Sebagai contoh, misalkan Anda ingin mengatur ulang ukuran (resize) beberapa listboxes dalam event Resize form:
Code::
Sub Form_Resize ()
Dim i As Integer, sHeight As Integer
   sHeight = ScaleHeight / 4
   For i = 0 To 3
      lstDisplay(i).Move 0, i * sHeight, _
      ScaleWidth, sHeight
   Next
End Sub

Prosedur di atas membuat empat repaints yang berbeda, satu untuk setiap listbox. Anda dapat mengurangi jumlah repaints dengan menempatkan semua listboxes di dalam sebuah picturebox, dan menyembunyikan picturebox sebelum Anda memindahkan dan mengatur ukuran listboxes. Kemudian, ketika Anda membuat picturebox kelihatan (visible) lagi, semua listboxes digambar dalam sebuah prosedur:
Code::
Sub Form_Resize ()
Dim i As Integer, sHeight As Integer
   picContainer.Visible = False
   picContainer.Move 0, 0, ScaleWidth, ScaleHeight
   sHeight = ScaleHeight / 4
   For i = 0 To 3
      lstDisplay(i).Move 0, i * sHeight, _
      ScaleWidth, sHeight
   Next
   picContainer.Visible = True
End Sub

Catatan: Contoh ini menggunkaan methode Move menggantikan setting property Top dan Left. Methode Move mengeset kedua properties dalam sebuah operasi, dan menyimpan repaints yang ditambahkan.


Sumber: MSDN Library - Januari 2000 (Optimizing Display Speed)

Mendeteksi Jenis Sistem Operasi Windows



Pernahkah Anda ingin mendeteksi jenis sistem operasi Windows versi yang mana digunakan di komputer tempat program Anda dijalankan nantinya? Kadang-kadang Anda membutuhkan fungsi ini misalnya untuk memastikan penanganan khusus di program Anda untuk masing-masing jenis sistem operasi tersebut. Berikut ini solusinya!
Code::
'Deskripsi: Mendeteksi jenis sistem operasi Windows di suatu komputer.
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Commandbutton, 
'              dan satu Module (.bas)
'           2. Copy-kan coding berikut ke dalam editor form dan module
'              yang bertalian.
'--------------------------------------------------------------------------
 
'--- Coding ini di Module ---
Option Explicit
 
'Kode yang dimodifikasi berasal dari artikel di Visual Studio Magazine by Hank Marquis
'http://www.fawcette.com/vsm/2002_05/magazine/columns/desktopdeveloper/default_pf.asp
 
'Private Const VER_PLATFORM_WIN32s As Long = 0
Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1
Private Const VER_PLATFORM_WIN32_NT As Long = 2
 
Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformID As Long
  szCSDVersion As String * 128
End Type
 
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
                         (lpVersionInformation As OSVERSIONINFO) As Long
 
Public Function WinVer() As String
  'Mengembalikan jenis Sistem Operasi
  Dim tOVI As OSVERSIONINFO
 
  'Seharusnya 148: (128 + (4 * 5))  - Tipe data Long =  4 bytes
  tOVI.dwOSVersionInfoSize = Len(tOVI)
 
  'Mulai periksa
  If GetVersionEx(tOVI) = 1 Then
    If tOVI.dwPlatformID = VER_PLATFORM_WIN32_NT And _
       tOVI.dwMajorVersion = 5 And _
       tOVI.dwMinorVersion = 1 Then
      WinVer = "XP"
    ElseIf tOVI.dwPlatformID = VER_PLATFORM_WIN32_NT And _
           tOVI.dwMajorVersion = 5 And _
           tOVI.dwMinorVersion = 0 Then
      WinVer = "00"
    ElseIf tOVI.dwPlatformID = VER_PLATFORM_WIN32_NT And tOVI.dwMajorVersion = 4 Then
      WinVer = "NT"
    ElseIf tOVI.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS And _
           tOVI.dwMajorVersion = 4 And _
           tOVI.dwMinorVersion = 90 Then
      WinVer = "ME"
    ElseIf (tOVI.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) And _
           (tOVI.dwMajorVersion > 4) Or _
           (tOVI.dwMajorVersion = 4 And _
           tOVI.dwMinorVersion > 0) Then
      WinVer = "98"
    ElseIf tOVI.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS And _
           tOVI.dwMajorVersion = 4 And tOVI.dwMinorVersion = 0 Then
      WinVer = "95"
    End If
  End If
 
  If Len(Trim$(WinVer)) = 0 Then
    'OS tidak dikenali, kemungkinan module ini perlu diupdate jika ada OS yang baru
    'atau kemungkinan fungsi API: GetVersionEX tidak dapat bekerja semestinya.
    WinVer = "UN"     ' Unknown
  End If
End Function
'--- Batas coding di Module ---
 
'--- Coding ini di Form ---
'Klik Command1 untuk menampilkan jenis Sistem Operasi yang digunakan
Private Sub Command1_Click()
  Dim OSVersion As String
  Select Case WinVer
    Case "NT"
      OSVersion = "Windows NT"
    Case "00"
      OSVersion = "Windows NT"
    Case "XP"
      OSVersion = "Windows XP"
    Case "95"
      OSVersion = "Windows 95"
    Case "98"
      OSVersion = "Windows 98"
    Case "ME"
      OSVersion = "Windows ME"
    Case Else
      OSVersion = "Unknown Version"
  End Select
  MsgBox "Sistem Operasi yang Anda gunakan: " & _
         OSVersion, vbInformation, "Sistem Operasi"
End Sub
'--- Batas coding di Form ---
 

© 2011 e - Tutorial | by Moeh Fitrah