VBA/Excel/Access/Word/Windows API/Screen Resolution

Материал из VB Эксперт
Перейти к: навигация, поиск

Get Screen Resolution

   <source lang="vb">

Type MEMORYSTATUS

  dwLength As Long
  dwMemoryLoad As Long
  dwTotalPhys As Long
  dwAvailPhys As Long
  dwTotalPageFile As Long
  dwAvailPageFile As Long
  dwTotalVirtual As Long
  dwAvailVirtual As Long

End Type Type SYSTEM_INFO

  dwOemID As Long
  dwPageSize As Long
  lpMinimumApplicationAddress As Long
  lpMaximumApplicationAddress As Long
  dwActiveProcessorMask As Long
  dwNumberOrfProcessors As Long
  dwProcessorType As Long
  dwAllocationGranularity As Long
  dwReserved As Long

End Type Declare Function abGetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long Sub GetSysInfo()

   Dim intMousePresent As Integer
   Dim strBuffer As String
   Dim intLen As Integer
   Dim MS As MEMORYSTATUS
   Dim SI As SYSTEM_INFO
   Dim strCommandLine As String
   txtScreenResolution = abGetSystemMetrics(SM_CXSCREEN) & " By " & abGetSystemMetrics(SM_CYSCREEN)
   Debug.Print txtScreenResolution
   
   

End Sub

</source>
   
  


Retrieve Display-Resolution Information

   <source lang="vb">

Declare Function DisplaySize Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long Public Const SM_CXSCREEN = 0 Public Const SM_CYSCREEN = 1 Function VideoRes() As String

   Dim vidWidth
   Dim vidHeight
   
   vidWidth = DisplaySize(SM_CXSCREEN)
   vidHeight = DisplaySize(SM_CYSCREEN)
   
   Select Case (vidWidth * vidHeight)
       Case 307200
           VideoRes = "640 x 480"
       Case 480000
           VideoRes = "800 x 600"
       Case 786432
           VideoRes = "1024 x 768"
       Case Else
           VideoRes = "Something else"
   End Select

End Function Sub CheckDisplayRes()

   Dim VideoInfo As String
   Dim Msg1 As String, Msg2 As String, Msg3 As String
   VideoInfo = VideoRes
   Select Case VideoInfo
       Case Is = "640 x 480"
           Debug.Print "640 x 480"
       Case Is = "800 x 600"
           Debug.Print "800 x 600"
       Case Is = "1024 x 768"
           Debug.Print "1024 x 768"
       Case Else
           MsgBox "Else"
   End Select

End Sub

</source>