Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Прога для смены разрешения экрана
Посл.ответ Сообщение

Ранг: 4.8 (гость)
Активность: 0.020
Статус: Участник

Создано: 25 января 2007 09:59
· Личное сообщение · #1

надо чтобы программа меняла Screen Resolution, затем запускала некоторую программу,а после
выхода из неё возвращала назад как было
может такое реально сделать в bat файле? или надо на Дельфях писать?
если готовое есть,дайте ссылку плиз




Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 25 января 2007 10:05
· Личное сообщение · #2

можно написать отлов по заголовку окна, типо когда окно есть то меняем разрешение на такоето, если нету, то ставим как было... йаб на дельфях делал, если конечно йа все правильно понял.

-----
may all your PUSHes be POPed!




Ранг: 6.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 января 2007 03:02
· Личное сообщение · #3

Исходник на ASM: сохраняет параметры экрана, ставит 8 бит/пиксел, вызывает Mist.exe,
ждет завершения и восстанавливает исходные параметры.
Можно переделать под свои нужды.
Успехов.


f560_26.01.2007_CRACKLAB.rU.tgz - GO.ASM



Ранг: 21.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 26 января 2007 05:43
· Личное сообщение · #4

Да там делов то.. Мне постоянно в игровых движках такие функции писать надо, только я сейчас не дома, как приду так отпишу код, он на Си, использует АПИ винды, так что проблем с портацией возникнуть не должно (:



Ранг: 21.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 26 января 2007 08:14 · Поправил: KpeHDeJIb
· Личное сообщение · #5

Вот функция устанавливает полноэкранный режим окна wnd с размерами экрана width x height (ширина x высота) с глубиной цвета bpp и частотой обновления freq, причем при выходе из программы восстановится прежний режим, т.к. установлен флаг CDS_FULLSCREEN:

bool set_fullscreen(HWND wnd, int width, int height, int bpp, int freq)
{
DEVMODE mode;
ZERO_MEM(&mode, sizeof(mode));
mode.dmSize = sizeof(DEVMODE);
mode.dmPelsWidth = width;
mode.dmPelsHeight = height;
mode.dmBitsPerPel = bpp;
mode.dmDisplayFrequency = freq;
mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | DM_DISPLAYFREQUENCY;
if (ChangeDisplaySettings(&mode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
return false;
SetWindowLong(wnd, GWL_EXSTYLE, WS_EX_APPWINDOW | WS_EX_TOPMOST);
SetWindowLong(wnd, GWL_STYLE, WS_POPUP);
SetWindowPos(wnd, HWND_TOPMOST, 0, 0, width, height, SWP_SHOWWINDOW |SWP_FRAMECHANGED);
return true;
}


Если надо не привязываться к окну, то просто убераешь все SetWindowLong и все, будет просто менятся разрешение экрана (:


 eXeL@B —› Программирование —› Прога для смены разрешения экрана
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати