Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
ВнизПомогите перевести код для выключения. Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c