Конференция "WinAPI" » Ошибка при блокировке компа (Window+L) [D7, WinXP]
 
  • maxistent © (22.01.10 14:12) [0]
    Всем здрасти! Столкнулся с такой проблемой...
    Моя программка (что-то вроде утилиты) меняет положение своего окна в зависимости от действий пользователя и параметров экрана. Все работает нормально только до того момента, пока я не нажму комбинацию Windows+L (блокировка компа). Как только были нажаты эти заветные клавиши, в программе появляется исключение, и компилятор говорит "A call to an OS function failed". как этого избегать? кто подскажет? используется функция Screen.WorkAreaWidth... если её временно отключаю - все работает нормально..
  • Вася (22.01.10 23:41) [1]
    хм.попробуйте вместо Screen.WorkAreaWidth использовать нужную апи функцию.
  • Игорь Шевченко © (23.01.10 00:49) [2]
    maxistent ©   (22.01.10 14:12)  


    > как этого избегать?


    А так и избежать - не работать при блокировке компа.
  • maxistent © (25.01.10 07:19) [3]

    > Вася   (22.01.10 23:41) [1]
    > хм.попробуйте вместо Screen.WorkAreaWidth использовать нужную
    > апи функцию.

    А какая именно функция за это отвечает?


    > Игорь Шевченко ©   (23.01.10 00:49) [2]
    > А так и избежать - не работать при блокировке компа.

    Логично, но как узнать что комп залочен?
  • Вася (25.01.10 13:35) [4]
    ну я же не знаю что вам нужно.видимо вы часто узнаёте размеры рабочей области?
    зачем?это так критично или что-то существенно меняется при его малейшем изменении?
    я бы предположил что-то будь там WorkAreaHeight.хотя та панелька может быть и сбоку.....

    вот как-то примерно так попробуйте:

    var rt: TRect;

    ...

    SystemParametersInfo(SPI_GETWORKAREA, 0, @rt, 0);
    ShowMessage(inttostr(rt.bottom));

 
Конференция "WinAPI" » Ошибка при блокировке компа (Window+L) [D7, WinXP]
Есть новые Нет новых   [134432   +18][b:0][p:0.001]