Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

peshe

Tem como mudar a resolução do monitor?

Recommended Posts

Pessoal, eu tenho dois monitores no mesmo computador, queria saber se tem como fazer um programa que mudasse a resolução dos monitores para 1024x768 e depois voltasse a resolução anterior, mas não sei qual é código para por no botão. Qual é?Valewté mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja descobri como "pegar" a resolução do monitor e salvar numa variavel, só falta o código de mudar a resolução, alguem sabe?? O código por enquanto está assim:Dim resolução As StringPrivate Sub Form_Load()Dim xTwips%, yTwips%, xPixels#, YPixels#xTwips = Screen.TwipsPerPixelXyTwips = Screen.TwipsPerPixelYYPixels = Screen.Height / yTwipsxPixels = Screen.Width / xTwipsresolução = "A Resolução é: " & Str$(xPixels) + " por " + Str$(YPixels)Label1 = resoluçãoEnd SubAlguem sabe como mudar a resolução?? Falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

Num Módulo:

 

Public ResX As SinglePublic ResY As SinglePublic OldX As SinglePublic OldY As SinglePublic resolucao As Boolean'muda data e símbolo de R$Public Const LOCALE_SSHORTDATE = &H1FPublic Const LOCALE_SCURRENCY = 20Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As LongPublic Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean' muda resolução do vídeoPublic Type RECT   Left As Long   Top As Long   Right As Long   Bottom As LongEnd TypePublic Declare Function GetClipCursor Lib "user32.dll" (lprc As RECT) As LongPrivate Declare Function EnumDisplaySettings Lib "user32" Alias _"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _lpDevMode As Any) As BooleanPrivate Declare Function ChangeDisplaySettings Lib "user32" Alias _"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As LongConst CCDEVICENAME = 32Const CCFORMNAME = 32Const DM_PELSWIDTH = &H80000Const DM_PELSHEIGHT = &H100000Private Type DEVMODE   dmDeviceName As String * CCDEVICENAME   dmSpecVersion As Integer   dmDriverVersion As Integer   dmSize As Integer   dmDriverExtra As Integer   dmFields As Long   dmOrientation As Integer   dmPaperSize As Integer   dmPaperLength As Integer   dmPaperWidth As Integer   dmScale As Integer   dmCopies As Integer   dmDefaultSource As Integer   dmPrintQuality As Integer   dmColor As Integer   dmDuplex As Integer   dmYResolution As Integer   dmTTOption As Integer   dmCollate As Integer   dmFormName As String * CCFORMNAME   dmUnusedPadding As Integer   dmBitsPerPel As Integer   dmPelsWidth As Long   dmPelsHeight As Long   dmDisplayFlags As Long   dmDisplayFrequency As LongEnd TypeDim DevM As DEVMODEPublic Sub ChangeRes(iWidth As Single, iHeight As Single)   Dim a As Boolean   Dim i As Long   Do	  a = EnumDisplaySettings(0&, i, DevM)	  i = i + 1   Loop Until (a = False)   Dim b As Long   DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT   DevM.dmPelsWidth = iWidth   DevM.dmPelsHeight = iHeight   b = ChangeDisplaySettings(DevM, 0)End Sub

No form, para chamar a função:

 

Call ChangeRes(800, 600)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E para voltar à resolução anterior seria como?Eu criei uma variavel "res" (sem aspas), no Form_load eu puis: "res = Str$(xPixels) + ", " & Str$(YPixels)" (sem aspas) e para voltar à resolução anterior seria"Call CahngeRes (res)" ?Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de mudar, voce pode usar o código que você pegou para gravar a resolução inicial em duas variavels: xPixels e yPixels ......Depois, para voltar é só chamar:Call ChangeRes(xPixels, yPixels)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, fiz isso que você falou e deu um erro:

Compile error:ByRef argument type masmatch

O que eu faço?Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.