Что нового

Как узнать "рабочую" высоту экрана?

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Доброго времени суток.

Нужно узнать "рабочую" высоту экрана десктопа. Она состоит из общей высоты экрана минус высота панели задач.
Мне это нужно для выдачи "гуишных" оповещений возле трея.

Так вот, хочу спросить: есть ли такие макросы? В хелпе ничего подобного не нашел.

Брать высоту экрана и отнимать от нее высоту панели задач - не вариант(это все будет работать на разных операционках + на некоторых панель задач скрываема(спрятана)).
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
658
Попробуй-те так:
Код:
#Include <WinAPIEx.au3>

$tRECT = _WinAPI_GetWorkArea()
;$Width = DllStructGetData($tRECT, 'Right') - DllStructGetData($tRECT, 'Left') ;Рабочая ширина
$Height = DllStructGetData($tRECT, 'Bottom') - DllStructGetData($tRECT, 'Top') ;Рабочая высота

MsgBox(0, 'Рабочая высота', $Height)
 
Автор
K

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Идеально. Спасибо.
 

VladUs

Скриптер
Сообщения
621
Репутация
180
или так

Код:
#include <WinAPI.au3>

Local $hwnd, $tRect
$hwnd = WinGetHandle("Program Manager")
$hCtrl = ControlGetHandle($hwnd,"","[CLASS:SysListView32; INSTANCE:1]")
$tRect = _WinAPI_GetClientRect($hCtrl)
MsgBox(4096, "Rect", _
    "Left..: " & DllStructGetData($tRect, "Left") & @LF & _
    "Right.: " & DllStructGetData($tRect, "Right") & @LF & _
    "Top...: " & DllStructGetData($tRect, "Top") & @LF & _
    "Bottom: " & DllStructGetData($tRect, "Bottom"))
 

agikon

Знающий
Сообщения
789
Репутация
16
ребята, а @DesktopHeight тоже ж в тему?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
@DesktopWidth и @DesktopHeight не учитывают Taskbar.
 
Верх