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

Определить запущена ли программа под системным аккаунтом

Delphi , Программа и Интерфейс , Приложение своё

Определить запущена ли программа под системным аккаунтом

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

function OnSystemAccount(): Boolean;
 const
   cnMaxNameLen = 254;
 var
   sName: string;
   dwNameLen: DWORD;
 begin
   dwNameLen := cnMaxNameLen - 1;
   SetLength(sName, cnMaxNameLen);
   GetUserName(PChar(sName), dwNameLen);
   SetLength(sName, dwNameLen);
   if UpperCase(Trim(sName)) = 'SYSTEM' then Result := True
    else
      Result := False;
 end;

Функция Delphi!

Функция OnSystemAccount проверяет, запущен ли программный процесс под системным учетом. Вот шаг за шагом, что она делает:

  1. Она определяет некоторые константы и переменные:
    • cnMaxNameLen: Максимальная длина имени пользователя (254 символа).
    • sName: Строка для хранения имени пользователя.
    • dwNameLen: DWORD-переменная для хранения длины имени пользователя.
  2. Она устанавливает начальную длину строки sName в cnMaxNameLen - 1, что оставляет один символ для null-терминатора.
  3. Она вызывает функцию GetUserName, передавая указатель на строку sName и ее длину (dwNameLen). Функция получает имя пользователя текущего процесса.
  4. Она устанавливает фактическую длину строки sName в значение, возвращенное функцией GetUserName. Это обеспечивает корректное null-терминирование строки.
  5. Она проверяет, равна ли верхний регистр версии обрезанной строки sName строке 'SYSTEM'.
  6. Если это так, функция возвращает True, указывая, что программа запущена под системным учетом. В противном случае она возвращает False.

Логика этой функции заключается в том, что когда программа запущена под системным учетом, ее имя пользователя обычно установлено в 'SYSTEM'. Функция проверяет это конкретное имя пользователя и возвращает соответствующее значение.

В терминах альтернатив, можно использовать другие методы для определения, запущен ли программный процесс под системным учетом. Например, можно проверить свойство CurrentProcess объекта AccessControl или Identity, которое предоставляет информацию о безопасности контекста процесса. Однако эта функция проста и легко понимается, поэтому она является хорошим выбором для ее предназначенного назначения.

Статья описывает функцию OnSystemAccount в Delphi, которая позволяет определить запущена ли программа под системным аккаунтом.


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


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

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Приложение своё ::


реклама



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

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