Страница: 1 | 2 |
Вопрос: Сколько мониторов?
Добавлено: 16.03.09 17:54
Автор вопроса: KreAtoR
Как узнать через API сколько в данный момент работает мониторов?
если через АПИ нельзя то подскажите как!!!
желательно конечно с примером.
Ответы
Всего ответов: 29
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 16.03.09 18:08
.NET
public static System.Windows.Forms.Screen[] AllScreens { get; }
Member of System.Windows.Forms.Screen
Summary:
Gets an array of all displays on the system.
Returns:
An array of type System.Windows.Forms.Screen, containing all displays on the system.
Номер ответа: 2
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #2
Добавлено: 16.03.09 18:17
а для vb6 есть примерчик.
Номер ответа: 3
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #3
Добавлено: 16.03.09 19:07
Зря ты заикнулся о вб )
Знаю, что из реестра можно получить все моники которые были подключены к компу за все время жизни твоей винды.
А если винда их еще и распознала, то и фирмы с моделями получить можно.
Номер ответа: 4
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #4
Добавлено: 17.03.09 10:45
@Smith
мне лишь интересно, сколько мониторов работают в данный момент. А также мне очень интересно их разрешение. Пока что смог сделать вот такую вот штуку
у меня это называется monitor.bas
Номер ответа: 5
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #5
Добавлено: 17.03.09 18:43
Развернулся неподецки )
В инэте нашел? Или все сам?
Номер ответа: 6
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 17.03.09 19:05
забавно однако получается.. судя по коду.. у тебя можеть быть либо 1 монитор, либо 0 .. других вариантов не предусматривается..
т.е. чтобы это узнать надо было писать такую партянку кода и вызывать api? Чем писать такую эээ... ммм... "функцию" сделай просто заглушку которая всегда будет возвращать 1 монитор, и в 99,9% случаев она будет давать верный результат, а остальное спишешь на несовместимость оборудования или отсутствие у юзера админских прав.
Так же очень интересует для какой цели задействованы width1,width2 еслил они, опять таки судя по коду, там вообще нигде не используются.. в чем их магическое предназначение? просто что бы было? так сказать для солидности?
Номер ответа: 7
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #7
Добавлено: 17.03.09 19:10
@EROS
1 возращается если мониторов больше чем один. мне собственно не важно сколько их, поэтому и поставил 0 и 1.
с width1 width2 я смотрел работает ли эта система вообще, как оказалось НЕТ.
даже ели стоят два монитора то функция все равно ничего толкового сделать не может.
короче сижу вот гадаю, пытаюсь в небо пальцем ткнуть
Номер ответа: 8
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #8
Добавлено: 17.03.09 19:48
KreAtoR, странно, неужели ты логику не просек. Для получения количества мониторов тебе видимо надо только SM_CMONITORS. В одну строчку (+объявление), вместо имени константы - значение:
Номер ответа: 9
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #9
Добавлено: 17.03.09 19:51
P.S., кстати, у меня дома всегда показывает 2. :P
Номер ответа: 10
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #10
Добавлено: 17.03.09 19:54
Два по сколько? )
Номер ответа: 11
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #11
Добавлено: 17.03.09 20:01
1 возращается если мониторов больше чем один. мне собственно не важно сколько их, поэтому и поставил 0 и 1.
ну тогда,наверное, было бы назвать функцию несколько иначе.. ты не находишь? Ну чтобы не вводить людей в заблуждение..
Номер ответа: 12
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #12
Добавлено: 17.03.09 20:22
P.S., кстати, у меня дома всегда показывает 2. :P
Тут фишка в том, что есть такое понятие как virtual screen, который прдставляет собой,сумму прямоугольников всех представленных в системе включая primary monitor. В твоем случае основной монитор будет занимать всю площать виртуального.
В случае если в системе 2 и более физических монитора, то их надо будет получать через EnumDisplayMonitors, а через GetMonitorInfo уже вытаскивать инфу о каждом из них.. разрешение глубина цвета и самое главное структуру RECT, которая показывает реальные координаты мониторов, чтобы ты мог отправить свое окно на тот или иной монитор.
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 17.03.09 20:29
К слову сказать в системе могут присутствовать так называемы псевдо-мониторы, яркий пример тому NetMeeting .. он как раз и создает такой монитор.
Номер ответа: 14
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #14
Добавлено: 17.03.09 22:41
1 возращается если мониторов больше чем один. мне собственно не важно сколько их, поэтому и поставил 0 и 1.
Муть там, а не функция. Посмотрите внимательней, что от чего вычитается (количество мониторов в системе минус разрешение активного монитора по горизонтали). Чужие исходники не всегда надо брать и втыкать буквально так же.
EROS, у меня два физических монитора. Т.е. конечно второй не монитор, а телевизор, но все же два физических устройства Я так понимаю, ты хоте сказать, что GetSystemMetrics возвращает число Display Objects?
P.S. EROS, так значит ты тоже из Нижнего Новгорода?
Номер ответа: 15
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 17.03.09 22:48
EROS, так значит ты тоже из Нижнего Новгорода?
O_O Что значит тоже?????????? Насколько я знаю тут из Нижнего больше никого нету!