![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при блокировке компа (Window+L) [D7, WinXP]
maxistent © (2010-01-22 14:12:00)Всем здрасти! Столкнулся с такой проблемой...
Моя программка (что-то вроде утилиты) меняет положение своего окна в зависимости от действий пользователя и параметров экрана. Все работает нормально только до того момента, пока я не нажму комбинацию Windows+L (блокировка компа). Как только были нажаты эти заветные клавиши, в программе появляется исключение, и компилятор говорит "A call to an OS function failed". как этого избегать? кто подскажет? используется функция Screen.WorkAreaWidth... если её временно отключаю - все работает нормально..
Вася (2010-01-25 13:35:00) [1]ну я же не знаю что вам нужно.видимо вы часто узнаёте размеры рабочей области?
зачем?это так критично или что-то существенно меняется при его малейшем изменении?
я бы предположил что-то будь там WorkAreaHeight.хотя та панелька может быть и сбоку.....
вот как-то примерно так попробуйте:
var rt: TRect;
...
SystemParametersInfo(SPI_GETWORKAREA, 0, @rt, 0);
ShowMessage(inttostr(rt.bottom));
maxistent (2010-01-25 07:19:00) [2]
> Вася (22.01.10 23:41) [1]
> хм.попробуйте вместо Screen.WorkAreaWidth использовать нужную
> апи функцию.
А какая именно функция за это отвечает?
> Игорь Шевченко © (23.01.10 00:49) [2]
> А так и избежать - не работать при блокировке компа.
Логично, но как узнать что комп залочен?
Игорь Шевченко (2010-01-23 00:49:00) [3]maxistent © (22.01.10 14:12)
> как этого избегать?
А так и избежать - не работать при блокировке компа.
Вася (2010-01-22 23:41:00) [4]хм.попробуйте вместо Screen.WorkAreaWidth использовать нужную апи функцию.