Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.005 c
15-1276585131
brother
2010-06-15 10:58
2010.09.12
Любителям zx-spectrumа: видео...


15-1273957893
NailMan
2010-05-16 01:11
2010.09.12
Свершилось чудо Маниту


15-1276833723
Separator
2010-06-18 08:02
2010.09.12
Вставка в код текущей даты


2-1276805385
DiamondeX
2010-06-18 00:09
2010.09.12
Открытие диалога из формы наследника


6-1226147951
Рем
2008-11-08 15:39
2010.09.12
Шлюз (покси) для разных рабочих групп ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский