Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

Помогите перевести код для выключения.   Найти похожие ветки 

 
nikfel ©   (2007-07-10 14:20) [0]

Пожалуйста помогите. Вот этот код не работает:
procedure  Shutdown(Flags:  DWORD);
var
    hToken:  THandle;
    Luid:  Int64;
    NewPrivileges:  TTokenPrivileges;
    OldPrivileges:  TTokenPrivileges;
    OldPrivilegesSize:  DWORD;
begin
    if  Win32Platform  =  VER_PLATFORM_WIN32_NT  
    then  //  получения  привилегий  для  платформы  NT
    begin
            //  получения  локального  уникального  ИД
        Win32Check(LookupPrivilegeValue(nil,  "SeShutdownPrivilege",  Luid));
            //  получения  токена  процесса
        Win32Check(OpenProcessToken(GetCurrentProcess,
            TOKEN_ADJUST_PRIVILEGES  or  TOKEN_QUERY,  hToken));
        NewPrivileges.PrivilegeCount  :=  1;
        NewPrivileges.Privileges[0].Attributes  :=  SE_PRIVILEGE_ENABLED;
        NewPrivileges.Privileges[0].Luid  :=  Luid;
            //  настройка  привилегий
        AdjustTokenPrivileges(hToken,  
            False,  
            NewPrivileges,  
            SizeOf(OldPrivileges),  
            OldPrivileges,  
            OldPrivilegesSize);
        try
            Win32Check(GetLastError  =  ERROR_SUCCESS);
        finally
            CloseHandle(hToken);
        end
    end;
    Win32Check(ExitWindowsEx(Flags,  0));
end;
Этот код я нашел в интернете, он работает если из кода убрать Win32Platform,Win32Check, но тогда зачем они нужны в этом коде, может можно и без них обойтись.


 
Jon ©   (2007-07-11 03:13) [1]

KOL.PAS

function WindowsShutdown( const Machine : KOLString; Force, Reboot : Boolean ) : Boolean;
{* Shut down of Windows NT. Pass Machine = "" to shutdown this PC.
  Pass Reboot = True to reboot immediatelly after shut down. }


 
D[u]fa ©   (2007-07-11 07:47) [2]

они только для проверки на ошибки



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
2-1201798008
batya-x
2008-01-31 19:46
2008.02.24
дождаться нажатия клавиши


15-1201238844
user_
2008-01-25 08:27
2008.02.24
QT и БД FireBird


2-1201628983
iwik
2008-01-29 20:49
2008.02.24
Передать данные в dll


11-1184062837
nikfel
2007-07-10 14:20
2008.02.24
Помогите перевести код для выключения.


2-1201801043
leonidus
2008-01-31 20:37
2008.02.24
Проблема с добавлением записи в базу