Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
ComeRun
1

Как можно из VB переключить режим 800х600 на режим 1024х768.

22.08.2007, 12:10. Просмотров 1328. Ответов 4
Метки нет (Все метки)


Как можно из VB переключить режим 800х600 на режим 1024х768.
Благодарю за помощь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2007, 12:10
Ответы с готовыми решениями:

Как переключить винт в режим DMA6?
Подскажите, как переключить винт в режим DMA6, WinXP почему-то не переключает его выше чем DMA5....

Как переключить текущее окно в полноэкранный режим?
Возможно ли переключить текущее окно в полноэкранный режим? Интересует аналог...

Как переключить режим виртуальной точки доступа?
дефолтом 11n, но intel 7260 и 8265 поддерживают(и работают) 11ac, однако я не могу найти способ...

Как переключить ноут в режим wifi 802.11n?
у меня ноут HP ProBook 4540s с Ralink RT3290 802.11bgn Wi-Fi Adapter, и есть роутер Asus RT-N10U,...

4
0 / 0 / 1
Регистрация: 28.07.2007
Сообщений: 177
22.08.2007, 13:40 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Option Explicit
 
Private Const EWX_REBOOT = 2
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_BITSPERPEL = &H40000
Private Const DM_PELSWIDTH = &H80000
Private Const DM_PELSHEIGHT = &H100000
Private Const CDS_UPDATEREGISTRY = &H1
Private Const CDS_TEST = &H4
Private Const DISP_CHANGE_SUCCESSFUL = 0
Private Const DISP_CHANGE_RESTART = 1
 
Private Type typDevMODE
    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 Long
End Type
 
Private Declare Function EnumDisplaySettings Lib _
  'user32' Alias 'EnumDisplaySettingsA' _
  (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
  lptypDevMode As Any) As Boolean
 
Private Declare Function ChangeDisplaySettings Lib _
  'user32' Alias 'ChangeDisplaySettingsA' (lptypDevMode As Any, _
  ByVal dwFlags As Long) As Long
  
Private Declare Function ExitWindowsEx Lib _
  'user32' (ByVal uFlags As Long, _
  ByVal dwReserved As Long) As Long
  
Public Function ChangeDisplayResolution(NewWidth As Long, _
   NewHeight As Long) As Boolean
 
'Usage:  ChangeDisplayResolution 1024, 768
 
'Returns: True if succesful, false otherwise
 
'Comments:  Problems have been reported using this code for
'resolutions higher than 1024 X 768.  We recommend not using this
'snippet to go above this limit.
 
Dim typDM As typDevMODE
Dim lRet As Long
Dim iResp  As Integer
 
'typDM = pointer to info about current
'display settings
 
lRet = EnumDisplaySettings(0, 0, typDM)
If lRet = 0 Then Exit Function
 
' Set the new resolution.
With typDM
    .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    .dmPelsWidth = NewWidth
    .dmPelsHeight = NewHeight
End With
 
'Do the update -- Pass update structure to
'ChangeDisplaySettings API function
lRet = ChangeDisplaySettings(typDM, CDS_UPDATEREGISTRY)
Select Case lRet
Case DISP_CHANGE_RESTART
 
   iResp = MsgBox _
  ('You must restart your computer to apply these changes.' & _
        vbCrLf & vbCrLf & 'Restart now?', _
        vbYesNo + vbInformation, 'Screen Resolution Changed')
    If iResp = vbYes Then
        ChangeDisplayResolution = True
        Reboot
    End If
 
Case DISP_CHANGE_SUCCESSFUL
    ChangeDisplayResolution = True
Case Else
    ChangeDisplayResolution = False
End Select
 
End Function
 
Private Sub Reboot()
    Dim lRet As Long
    lRet = ExitWindowsEx(EWX_REBOOT, 0)
End Sub
0
ComeRun
22.08.2007, 15:18 3
Леон, большое Вам СПАСИБО!
А можно ли без reboot это как-нибудь переключить?
Ведь вручную это делается без рестарта???
0 / 0 / 1
Регистрация: 28.07.2007
Сообщений: 177
22.08.2007, 16:28 4
Обратите внимание, что ребут выполняется только при необходимости. Если драйвер позволяет - резолюция изменится без перезагрузки.

Надеюсь это поможет.
0
ComeRun
22.08.2007, 17:19 5
Все получилось!
Гениально!
Спасибо!
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2007, 17:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Samsung R425 как переключить батарею на нужный режим заряда?
Помогите, плиз! Дело вот в чем - когда купил ноутбук Samsung R425 с Windows 7 - выскочило окошечко...

Как поменят разрешение экрана из 800х600 сделат 640х480 или 1024х768?
Привет всем! Мой вопрос : как поменят разрешение экрана из 800х600 сделат 640х480 или 1024х768....

Нужно режим SATA AHCI переключить в IDE
Доброго времени суток. Имею ноут с проблемным HDD (все висит и нормально работает только в...

Как узнать почему включается энергосберегающий режим.И выключить навсегда этот режим?
Вообщем дело такое, гаснет монитор и появляется сообщение "Енергосберегающий режим" и в играх и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.