GetSystemMetrics32(n) Question

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have found many articles on the web about the use of GetSystemMetrics(n)
to determine the screen resolution by using n=0 and n=1. However, running
the code:
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

Sub x()
Dim i As Long

For i = 1 To 300
Range("A" & i) = i - 1
Range("B" & i) = GetSystemMetrics32(i - 1)
Next i
End Sub

Seems to be giving meaningful values for n=0-84. All n>84 return 0.

I found that n=80 gives the number of monitors.

Is there a list of all meaningful values of n? (I haven't been able to
find one.)

Many thanks.
 
Thanks for the reply and the list.

From experimentation, there must be many more valid arguments. For
example, as I mentioned, n=80 returns the number of monitors and that value
is not on Microsoft's list in kb/210603. I tried adding and deleting
monitors from my multiple monitor system, and n=80 always gave the current
number of monitors.

On my system, 66 values of n returned a non-zero value. Some of the zero
returns also had meaning according to kb/210603.
 
Back
Top