Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
[Pascal] Вот привет кода 19.01.02 12:56 Число просмотров: 1055
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Это для Delphi, сишный я чего-то найти не могу :-(
Думаю разберешся, детали функций смотри в MSDN.
Удачи!
function ShutdownSystem(bForce: Boolean): Boolean;
var
Handle: THandle;
Priveleges: TOKEN_PRIVILEGES;
Size: Longword;
luid: int64;
begin
result := false;
if not OpenThreadToken(OpenThread(PROCESS_ALL_ACCESS, FALSE, GetCurrentThreadId()), TOKEN_ALL_ACCESS, TRUE, Handle)
and not OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, Handle) then
Exit;
if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then
Exit;
Priveleges.PrivilegeCount := 1;
Priveleges.Privileges[0].Luid := luid;
Priveleges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if not AdjustTokenPrivileges(Handle, false, Priveleges, SizeOf(Priveleges), Priveleges, Size) then
Exit;
if bForce then
result := ExitWindowsEx(EWX_FORCE or EWX_POWEROFF, 0) or ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0)
else
result := ExitWindowsEx(EWX_POWEROFF, 0) or ExitWindowsEx(EWX_SHUTDOWN, 0)
end;
---
|
|
<programming>
|
Завершения сеанса WinXP 19.01.02 01:28
Автор: Mikle Статус: Незарегистрированный пользователь
|
Пиплы. А кто знает, как реально (чтоб работало на практике) завершать работу под XP на Delphi :
Logoff
Shutdown
Reboot и т.д.
процедуры типа windows.exitwindows(0,0) или
winexec('rundll32 user32, ExitWinodwsEx 0','') - не фурычат
|
 |
[Pascal] Вот привет кода 19.01.02 12:56
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Это для Delphi, сишный я чего-то найти не могу :-(
Думаю разберешся, детали функций смотри в MSDN.
Удачи!
function ShutdownSystem(bForce: Boolean): Boolean;
var
Handle: THandle;
Priveleges: TOKEN_PRIVILEGES;
Size: Longword;
luid: int64;
begin
result := false;
if not OpenThreadToken(OpenThread(PROCESS_ALL_ACCESS, FALSE, GetCurrentThreadId()), TOKEN_ALL_ACCESS, TRUE, Handle)
and not OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, Handle) then
Exit;
if not LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then
Exit;
Priveleges.PrivilegeCount := 1;
Priveleges.Privileges[0].Luid := luid;
Priveleges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if not AdjustTokenPrivileges(Handle, false, Priveleges, SizeOf(Priveleges), Priveleges, Size) then
Exit;
if bForce then
result := ExitWindowsEx(EWX_FORCE or EWX_POWEROFF, 0) or ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0)
else
result := ExitWindowsEx(EWX_POWEROFF, 0) or ExitWindowsEx(EWX_SHUTDOWN, 0)
end;
---
|
 |
сначала вызови AdjustTokenPrivileges(SeShutdownPrivilege) 19.01.02 05:09
Автор: ggg <ggg> Статус: Elderman
|
|
|
 |  |
А я давно говорил, что XP-это г$но. Люди, ставьте NT! 19.01.02 05:15
Автор: push Статус: Незарегистрированный пользователь
|
|
|
 |  |  |
это фича всех NT ;) - security :) 19.01.02 08:50
Автор: ggg <ggg> Статус: Elderman
|
|
|
|
|