Использование User32 Lib и функции:Получить размер экрана, подобный CursorPos (Excel VBA)
Public Declare Function GetCursorPos Lib "User32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
Public pos As POINTAPI
Вы можете увидеть расположение пикселя курсора с:
GetCursorPos pos
Debug.Print("X: " & pos.x & " Y: " & pos.y)
Мой вопрос, можно ли увидеть размер экрана, используя тот же метод, что и GetCursorPos? Моя причина в том, что двойные мониторы могут заставить эту функцию возвращать отрицательные значения. Например, одна установка может быть это между двумя мониторами на левый/правый:
'Not sure if true or not
MinX: -1920
MaxX: 1920
MinY: -1080
MaxY: 1080
Я в основном спрашивают, как использовать что-то похожее на GetCursorPos, но для получения границ экранов.
ПОС происходит от «первого» экрана (верхний левый угол) ... если второй больше или слева от него вы получите отрицательные числа ... –
, но для получения разрешения вам нужно что-то вроде 'Объявить функцию PtrSafe GetSystemMetrics Lib« User32 »(ByVal nIndex As Long) As Long', а затем получить с помощью' GetSystemMetrics (0) 'и 'GetSystemMetrics (1)' размер первого монитора при наличии 'GetSystemMetrics (78)' и 'GetSystemMetrics (79)', удерживая сумму обоих (если они слева/справа, вы получаете сумму x и более высокую y) –
@DirkReichel спасибо за GetSystemMetrics (78) и (79)! Это может быть то, что мне нужно. Я не думаю, что вы знаете, как определить настройку монитора через VBA (первичный слева/справа или сверху/снизу) ?. – icebird76