Есть ExamineScreenModes(), она возвращает возможные варианты разрешений.
Так и не понял как можно переключиться на другое разрешение, кругом только чтение. Может это где в другом месте справки есть.
Переключить разрешение монитора
Сообщений 1 страница 9 из 9
Поделиться107.02.2016 07:12:44
Поделиться207.02.2016 16:51:20
Разрешение экрана изменяет функция OpenScreen.
Поделиться308.02.2016 08:13:22
Пробовал, получил чёрный экран на пару секунд, и само всё возвращается назад.
Не получается картинку загрузить с компа, с меня требут флеш подключить.
Это не для игрушки, нужно переключать разрешение монитора, а не экрана, так умеет делать программа H-menu, но её забросили очень давно.
Отредактировано newJS (08.02.2016 08:32:04)
Поделиться408.02.2016 15:44:58
Procedure Change_DisplaySettings(width,height,Depth,Freq,Permanent) dmScreenSettings.DEVMODE dmScreenSettings\dmSize = SizeOf(dmScreenSettings) dmScreenSettings\dmPelsWidth = width dmScreenSettings\dmPelsHeight = height dmScreenSettings\dmBitsPerPel = Depth dmScreenSettings\dmDisplayFrequency=Freq dmScreenSettings\dmFields = 262144 | 524288 | 1048576 If Permanent retour=ChangeDisplaySettings_(@dmScreenSettings, 1) Else retour=ChangeDisplaySettings_(@dmScreenSettings, 4) EndIf ProcedureReturn retour EndProcedure ;/ Test Change_DisplaySettings(1024,768,32,60,0) MessageRequester("Change Display Settings","OK to Restore")
Поделиться509.02.2016 05:50:48
Пётр, спасибо, забрал, попробую, здесь не начем.
Хотелось бы комменты, совсем не понятно кто тут от кого произошёл, особенно эта строка dmScreenSettings\dmFields = 262144 | 524288 | 1048576
Поделиться609.02.2016 07:26:32
Работать то оно работает, но с тем же эффектом, что и OpenScreen, тут же само переключается назад, а смысл в таком спец эффекте.
Надо чтобы после переключения все программы продолжали работать до следуещего переключения.
Поделиться709.02.2016 10:33:33
Новое разрешение экрана будет сохраняться до тех пор пока активно запущенное приложение.
Использована процедура из предыдущего примера и просто дополнена AddSysTrayIcon(). Что на счёт такого варианта?
Procedure Change_DisplaySettings(width,height,Depth,Freq,Permanent) dmScreenSettings.DEVMODE dmScreenSettings\dmSize = SizeOf(dmScreenSettings) dmScreenSettings\dmPelsWidth = width dmScreenSettings\dmPelsHeight = height dmScreenSettings\dmBitsPerPel = Depth dmScreenSettings\dmDisplayFrequency=Freq dmScreenSettings\dmFields = 262144 | 524288 | 1048576 If Permanent retour=ChangeDisplaySettings_(@dmScreenSettings, 1) Else retour=ChangeDisplaySettings_(@dmScreenSettings, 4) EndIf ProcedureReturn retour EndProcedure Enumeration Window #MainWindow EndEnumeration Enumeration MenuItemID #MenuItemID_Exit EndEnumeration Enumeration SysTrayIcon #TrayIcon EndEnumeration Enumeration Image #TrayIconImage EndEnumeration If CreateImage(#TrayIconImage, 16, 16) StartDrawing(ImageOutput(#TrayIconImage)) For i=16 To 4 Step -1 Circle(0, 0, i, RGB(16*i, 0, 0)) Next StopDrawing() EndIf If OpenWindow(#MainWindow, #PB_Ignore, #PB_Ignore, 320, 240, "Change Display Settings", #PB_Window_Invisible) ;{ Tray If AddSysTrayIcon(#TrayIcon, WindowID(#MainWindow), ImageID(#TrayIconImage)) TrayMenu = CreatePopupMenu(#PB_Any) If IsMenu(TrayMenu) MenuItem(#MenuItemID_Exit, "Exit") EndIf EndIf ;} Change_DisplaySettings(1024,768,32,60,0) Repeat WindowEvent=WindowEvent() Select WindowEvent Case #PB_Event_SysTray If EventType() = #PB_EventType_RightClick DisplayPopupMenu(TrayMenu, WindowID(#MainWindow)) EndIf Case #PB_Event_Menu Select EventMenu() Case #MenuItemID_Exit Break EndSelect EndSelect ForEver CloseWindow(#MainWindow) EndIf End
Поделиться809.02.2016 11:42:49
Хотелось бы комменты, совсем не понятно кто тут от кого произошёл, особенно эта строка dmScreenSettings\dmFields = 262144 | 524288 | 1048576
Это нужно изучать описание функции ChangeDisplaySettings (на русском) и структуры DEVMODE (на русском).
Надо чтобы после переключения все программы продолжали работать до следуещего переключения.
Тогда в последнем аргументе должен быть не 0, а 1.
Change_DisplaySettings(1024,768,32,60,1)
Поделиться910.02.2016 07:37:25
Пётр спасибо, это читал, только я уже в том возрасте когда новое даётся с трудом, а виндячие api я вообще не понимаю.
Тигрёнок спасибо, всё забрал, буду пробовать.