Показать сообщение отдельно
  #2  
Старый 16.10.2016, 23:18
djanius djanius вне форума
Прохожий
 
Регистрация: 08.01.2016
Сообщения: 2
Версия Delphi: Delphi XE8
Репутация: 10
По умолчанию

Все, всем спасибо за просмотр моей темы. Разобрался сам. Нужно было дать привилегии. Добавил функцию в код и все заработало.

Код:
function EnableDebugPrivilege(const Value: Boolean): Boolean;
const
  SE_DEBUG_NAME = 'SeDebugPrivilege';
var
  hToken: THandle;
  tp: TOKEN_PRIVILEGES;
  d: DWORD;
begin
  Result := False;
  if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken) then
  begin
    tp.PrivilegeCount := 1;
    LookupPrivilegeValue(nil, SE_DEBUG_NAME, tp.Privileges[0].Luid);
    if Value then
      tp.Privileges[0].Attributes := $00000002
    else
      tp.Privileges[0].Attributes := $80000000;
    AdjustTokenPrivileges(hToken, False, tp, SizeOf(TOKEN_PRIVILEGES), nil, d);
    if GetLastError = ERROR_SUCCESS then
    begin
      Result := True;
    end;
    CloseHandle(hToken);
  end;
end;
Ответить с цитированием