From: NoSpam on
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.
From: Rick Rothstein on
Here is a link to a list of arguments (there are only about 38 of them) and
what they mean...

http://support.microsoft.com/kb/210603

--
Rick (MVP - Excel)



<NoSpam(a)aol.com> wrote in message
news:1hpbs594d6mtagctqsra5g7f6th919dvgv(a)4ax.com...
> 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.

From: NoSpam on
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.

On Wed, 14 Apr 2010 12:39:30 -0400, "Rick Rothstein"
<rick.newsNO.SPAM(a)NO.SPAMverizon.net> wrote:

>Here is a link to a list of arguments (there are only about 38 of them) and
>what they mean...
>
>http://support.microsoft.com/kb/210603

From: Rick Rothstein on
A little more searching revealed this link which shows more parameter
values, but without an explanation (only somewhat cryptic parameter names as
a hint)...

http://wiki.tcl.tk/15401

--
Rick (MVP - Excel)



<NoSpam(a)aol.com> wrote in message
news:i8sbs5t0l6riadtqnpe0cqbfuokoc72ncs(a)4ax.com...
> 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.
>
> On Wed, 14 Apr 2010 12:39:30 -0400, "Rick Rothstein"
> <rick.newsNO.SPAM(a)NO.SPAMverizon.net> wrote:
>
>>Here is a link to a list of arguments (there are only about 38 of them)
>>and
>>what they mean...
>>
>>http://support.microsoft.com/kb/210603
>