Имя: Пароль:
1C
1C 7.7
v7: Узнать разрешение второго монитора для 1с 7.7
, , ,
0 Shrk_V_V_V
 
07.09.18
14:07
Тут
Как можно определить разрешение монитора текущего пользователя?
Написано, как узнать для первого, а для второго не работает
Попобовал поправить

|    For Each mParam In mService.ExecQuery(""SELECT Sum(1) as n FROM Win32_DesktopMonitor"")
|        nHeight = mParam.n
|        nWidth = mParam.n
|        rez = rez " + Ñèìâ(38) + " cStr(nWidth)  " + Ñèìâ(38) +"""x""" + Ñèìâ(38) + " cStr(nHeight)  " + Ñèìâ(38) + """z""
|        Next
|    GetWindowAttribute =  rez

но все равно, не работает
1 2S
 
07.09.18
14:08
позвольте узнать - нафейхуа такое нужно?
2 Shrk_V_V_V
 
07.09.18
14:12
У некоторых пользователей второй монитор портрет, а не ланшафт, соответственно программа работает слегка по другому
3 Garikk
 
07.09.18
14:30
(0) мне негде запусить но

SELECT Sum(1) as n FROM Win32_DesktopMonitor

что этим вы хотели сделать? (в отличии от оригинала по вашей ссылке)
4 Shrk_V_V_V
 
07.09.18
14:35
Запрос правильный, звездочка там, это я опечатался. Пытался посчитать сколько строчек там, но так похоже нельзя. Запрос такой же, просто собирается не по последней, а по всем строчкам. Но выводит все равно данные одного монитора
5 Shrk_V_V_V
 
07.09.18
14:39
вот так,
http://prntscr.com/kromam
текст вставить не получается, кодировка с ума сходит
6 Сияющий в темноте
 
07.09.18
15:08
Можно у системы спросить разрешенин рабочего стола и области,спроецированные на мониторы,тогда получите,если на мониторе рабочий стол,а если нет,то нужно у видеокарты запрашивать,что и куда.
7 Пуля
 
07.09.18
15:11
Пусть пользователь ставит галочку - "Вертикаль/горизонталь", и по ней определять...
8 Shrk_V_V_V
 
07.09.18
15:41
Галочку придется просить, если не вычислю..
Не очень понимаю, как спросить у видеокарты..
9 NSSerg
 
07.09.18
15:52
For Each mParam in mService.ExecQuery("Select * from Win32_DesktopMonitor")
nHeight = mParam.ScreenHeight
nWidth = mParam.ScreenWidth
Next
10 NSSerg
 
07.09.18
15:56
(9) Виноват, не увидел скриншота. И неужели не работает?
11 Djelf
 
07.09.18
18:16
(0) Кажется я понял в чем причина. Видимо у тебя одинаковые мониторы, а Win32_DesktopMonitor выдает физические параметры монитора. Поэтому у второго монитора они те же самые.
Попробуй логические единицы проверить
https://docs.microsoft.com/ru-ru/windows/desktop/CIMWin32Prov/win32-videocontroller

А formex религия не позволяет использовать? Он должен логические единицы выдавать.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший