Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Проверить, заблокирована ли рабочая станция

Delphi , ОС и Железо , Компьютер

Проверить, заблокирована ли рабочая станция

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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;

Here's the translation of the text into Russian:

Функция Delphi под именем IsWorkstationLocked, которая проверяет, является ли текущий рабочий стол (или десктоп) защищенным. Вот разбивка кода:

  1. Функция возвращает логическое значение (Boolean) указывающее, защищен ли рабочий стол.
  2. Переменная hDesktop объявлена как типа HDESK, который представляет собой handle к десктопу.
  3. Функция OpenDesktop вызывается с четырьмя параметрами:
    • 'default': указывает имя десктопа для открытия (в этом случае, по умолчанию).
    • 0: указывает флаги для открытия десктопа (в этом случае, нет).
    • False: указывает, не должен ли быть переключен на открытый десктоп сразу.
    • DESKTOP_SWITCHDESKTOP: указывает, что открытый десктоп должен быть переключен.
  4. Если функция OpenDesktop возвращает значение, отличное от нуля (hDesktop <> 0), то это означает, что десктоп был успешно открыт, и код продолжается проверкой, защищен ли рабочий стол.
  5. Функция SwitchDesktop вызывается с handle hDesktop в качестве аргумента. Эта функция пытается переключиться на указанный десктоп.
  6. Если функция SwitchDesktop неудачна (то есть, возвращает значение, отличное от нуля), то это означает, что рабочий стол уже защищен, и код устанавливает Result в True.
  7. Наконец, функция CloseDesktop вызывается с handle hDesktop в качестве аргумента для закрытия десктопа.

Альтернативное решение с использованием функции GetSystemMetrics:

function IsWorkstationLocked: Boolean;
begin
  Result := GetSystemMetrics(SM_LOCKWORKSTATION) = 1;
end;

Функция более простая и прямолинейная, поскольку она напрямую спрашивает Windows, защищен ли рабочий стол. Обратите внимание, что это решение требует Delphi 2007 или позднее, потому что GetSystemMetrics была введена в этом версии.

В статье описывается функция IsWorkstationLocked, которая проверяет, заблокирована ли рабочая станция на компьютере.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Компьютер ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:47:58/0.0066211223602295/2