Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
ВнизРежим выбора пользователя Найти похожие ветки
← →
DiamondeX © (2010-06-19 20:25) [0]Как определить, что система находится в режиме выбора пользователя, поскольку пользователь выполнил команду системы "Сменить пользователя"? Или, другими словами, как определить, что система заблокирована?
Дело в том, что выполнение некоторых функций (например, определение позиции указателя мыши с помощью Mouse.CursorPos) вызывает ошибку "Call to OS function failed". Хотелось бы избежать этой ошибки.
← →
Anatoly Podgoretsky © (2010-06-19 20:27) [1]Заблокировано и логин - это разные вещи. После "смены пользователя" о твоих програмах как то говорить не приходится, они все закрыты.
← →
DiamondeX © (2010-06-19 20:30) [2]Нет, они не закрыты. Это не то же самое, что "Выход из системы"! Если выбрать "Сменить пользователя", то программа продолжает работать, о чем свидетельствуют возникающие ошибки )))
← →
Anatoly Podgoretsky © (2010-06-19 20:44) [3]> DiamondeX (19.06.2010 20:30:02) [2]
Пардон перепутал
← →
Palladin © (2010-06-19 22:01) [4]
> как определить, что система заблокирована?
Система не бывает в режиме "заблокированна", ну кроме DOS конечно... до старта autoexec, но эти времена давно прошли.
> Дело в том, что выполнение некоторых функций (например,
> определение позиции указателя мыши с помощью Mouse.CursorPos)
> вызывает ошибку "Call to OS function failed". Хотелось бы
> избежать этой ошибки.
А вот нехрен к ним обращатся из сервисов. Типа самый умный да?
← →
DiamondeX © (2010-06-20 08:25) [5]
> Система не бывает в режиме "заблокированна"
Хорошо, я уточню: речь идет о блокировки скорее компьютера. Вот цитата с англоязычного хелпа WinXP (к сожалению, русского нет): "[WinLogoKey] + L: Lock your computer if you are connected to a network domain, or switch users if you are not connected to a network domain. " Но сути дела это не меняет.
> А вот нехрен к ним обращатся из сервисов. Типа самый умный
> да?
Я просто пытаюсь определить положение указателя мыши. Если есть другой способ, то скажи. Если нет, то не надо флудить и выставлять себя умнее тех, кто сюда обращается.
← →
DiamondeX © (2010-06-20 08:47) [6]Опять ответ сам нашел )))
function IsWorkstationLocked: Boolean;
var hDesktop: HDESK;
begin
Result := False;
hDesktop := OpenDesktop("default", 0, False, DESKTOP_SWITCHDESKTOP);
if hDesktop <> 0 then begin
Result := not SwitchDesktop(hDesktop);
CloseDesktop(hDesktop);
end;
end;
Эту тему тоже можно закрыть
← →
sniknik © (2010-06-20 10:30) [7]> Я просто пытаюсь определить положение указателя мыши. Если есть другой способ, то скажи.
сменить логику программирования, определять координаты не по таймеру (или как там у тебя), а в событиях от действию юзера... которые в локированном состоянии ни за что не произойдут.
← →
Winlogon (2010-06-20 20:39) [8]
try
Pos := Mouse.CursorPos;
except
Pos := Point(-1, -1);
end;
А потом, в зависимости от потебностей:
if (Pos.X > -1) and (Pos.Y > -1) then
begin
// Всякое разное с Pos
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c