Untuk keperluan yang telah dijelaskan di atas, kita bisa menggunakan SysInfo.OCX (Microsoft SysInfo Control 6.0). Sysinfo seakan-akan sesuatu yang mutlak diperlukan dalam membuat sebuah aplikasi yang baik. Mengapa demikian?
Di bawah ini merupakan contoh sederhananya:
Option Explicit
Dim strOldResolution As String
Private Sub Form_Load()
With Timer1
.Enabled = False
.Interval = 100
End With
strOldResolution = "Resolution: " & Screen.Width / Screen.TwipsPerPixelX & _
" x " & Screen.Height / Screen.TwipsPerPixelY
Me.Caption = strOldResolution
Text1.Text = strOldResolution & vbCrLf
End Sub
Private Sub SysInfo1_DisplayChanged()
Timer1.Enabled = True 'delay time
End Sub
Private Sub Timer1_Timer()
Dim strText As String 'buffer variable
strText = Text1.Text
strText = strText & "Resolusi berubah menjadi: " & Screen.Width / Screen.TwipsPerPixelX & _
" x " & Screen.Height / Screen.TwipsPerPixelY & vbCrLf
Text1.Text = strText
Timer1.Enabled = False
End Sub
Dan tentu saja Anda bisa membuat modifikasi untuk disesuaikan dengan kebutuhan, misalnya seperti kode di bawah ini (kode yang berasal dari posting sebelumnya):
Option Explicit
Private Sub Form_Resize()
On Error Resume Next
With Form1
.Left = 0
.Top = 0
.Height = (Screen.Height * 0.5)
.Width = (Screen.Width * 0.5)
End With
With Command1
.Left = (Me.ScaleWidth * 0.68)
.Top = (Me.ScaleHeight * 0.78)
.Width = (Me.ScaleWidth * 0.2)
.Height = (Me.ScaleHeight * 0.1)
End With
End Sub
Private Sub SysInfo1_DisplayChanged()
If chkNonAktif.Value = vbChecked Then Exit Sub
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Form_Resize
Timer1.Enabled = False
End Sub
Selain Sysinfo.OCX yang dibuat oleh Microsoft, Anda bisa juga menggunakan SysInfo yang dibuat oleh Karl E. Peterson, dan menurut saya ini lebih baik. Terakhir, mengapa SysInfo yang dibuat Karl E. Peterson saya anggap lebih baik?