Главная страница
    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.46 MB
Время: 0.004 c
2-1276760149
john-s
2010-06-17 11:35
2010.09.12
Не могу добавить данные типа float в mysql


2-1276664021
Delphist2
2010-06-16 08:53
2010.09.12
текст в ячейке excel


15-1276689705
AKE
2010-06-16 16:01
2010.09.12
Есть ли аналог TBitmap в Visual c++?


2-1276721389
GanibalLector
2010-06-17 00:49
2010.09.12
TClientSocket в DLL


2-1276220053
DROWSY
2010-06-11 05:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский