quinta-feira, 2 de agosto de 2007

Algumas medidas do Windows

Não pense em cintura, busto, quadris ou coisas do tipo. Com a API "GetSystemMetrics" você pode ter acesso a algumas medidas mais interessantes do Windows. Veja a seguir como utilizá-la:

Declare o tipo de chamada na special-names:

special-names.
call-convention 66 is WAPI.

Defina as seguintes variáveis na working-storage section:

working-storage section.
77 wsBotoes pic s9(09) comp-5 value zeros.
77 wsAltura pic s9(09) comp-5 value zeros.
77 wsLargura pic s9(09) comp-5 value zeros.

78 SM-CXSCREEN value 0.
78 SM-CYSCREEN value 1.
78 SM-CMOUSEBUTTONS value 43.


Para saber a resolução da tela, utilize as constantes SM-CXSCREEN e SM-CYSCREEN:

call wapi "GetSystemMetrics" using by value SM-CXSCREEN
returning wsLargura
call wapi "GetSystemMetrics" using by value SM-CYSCREEN
returning wsAltura


A constante SM-CMOUSEBUTTONS retorna quantidade de botões do mouse ou zeros se o mouse não estiver instalado:

call wapi "GetSystemMetrics" using by value SM-CMOUSEBUTTONS
returning wsBotoes


Muitas outras constantes podem ser utilizadas com a API "GetSystemMetrics".
A relação completa você encontra no site da Microsoft.



2 comentários:

Anônimo disse...

Como de costume, sempre uma boa dica do Alexandre. Nesse exemplo creio que faltou mencionar na working as variáveis WsAltura e WsLargura.

Alexandre Cortez. disse...

Muito pertinente a sua observação, "anônimo".. rss... realmente, defini as variáveis wsLinhas e wsColunas na intenção de utilizá-las, mas no exemplo acabei deixando de forma errada outras variáveis.

As váriáveis de retorno da API "GetSystemMetrics" serão sempre definidas como PIC 9(09) COMP-5.

Obrigado pela colaboração, "anônimo"...