Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утилита для определения настроек дисплеев системы 
:(
    Опции темы
outfoxer
  Дата 3.6.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Последний раз писал что-то под Win еще студентом на лабах, но тут возникла задача для проекта www.forismatic.com:

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

Подскажите пожалуйста с чего начать, где копать, может кто-то поможет исходником ;)

PM MAIL   Вверх
S11
Дата 3.6.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Смотри следующие функции и их параметры( структуры DISPLAY_DEVICE,  DEVMODE)

Приведу их названия:

1) EnumDisplayDevices(...)
2) EnumDisplaySettingsEx(...)

В принципе этого достаточно. Если надо больше смотри близкие к этим функции в MSDN.

Приведу ещё небольшой пример:

Код

#include <windows.h>

BOOL GetDisplaySettings(int id, int &posX, int &posY, int &width, int &height, int &bpp, int &Hz)
{
   DISPLAY_DEVICE dDev;
   DEVMODE dm;

    memset(&dDev, 0, sizeof(dDev));
    memset(&dm, 0, sizeof(dm));

    dDev.cb = sizeof(dDev);
    dm.dmSize = sizeof(dm);

    if(!EnumDisplayDevices(NULL, id, &dDev, 0)) return FALSE;

    BOOL flag = EnumDisplaySettingsEx(dDev.DeviceName, ENUM_CURRENT_SETTINGS, &dm, 0);
    if(flag == FALSE) return FALSE;

    posX = dm.dmPosition.x;
    posY = dm.dmPosition.y;
    width = dm.dmPelsWidth;
    height = dm.dmPelsHeight;
    bpp = dm.dmBitsPerPel;
    Hz = dm.dmDisplayFrequency;
    return flag;
}


Мониторы винда нумерует с 0 и.т.д. Есть правда виртуальные экраны но это можно проверить.
Читай ещё:
http://msdn.microsoft.com/en-us/library/dd...1(v=VS.85).aspx


Это сообщение отредактировал(а) S11 - 3.6.2010, 15:27
PM MAIL   Вверх
outfoxer
Дата 3.6.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



А где можно посмотреть что-то для еще более начинающих? smile по исходнику идея немного ясна, но все равно много вопросов, может есть какие-то туториалы для начинающих или кто-то поможет написать такую утилитку? smile Все посетители форизматика будут очень благодарны + поставим ссылочку на вас smile
PM MAIL   Вверх
S11
Дата 3.6.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Я немного отредактировал своё предыдущее сообщение. Недеюсь стало понятней.
Или вы хотите чтобы вам полностью программу написали? Так это скорей на фриланс.  smile 
PM MAIL   Вверх
xvr
Дата 3.6.2010, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(S11 @  3.6.2010,  16:51 Найти цитируемый пост)
Или вы хотите чтобы вам полностью программу написали? Так это скорей на фриланс.
Или в Центр помощи.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0746 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.