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

Вниз

Как завершить работу компьютера ?   Найти похожие ветки 

 
volph   (2001-11-13 15:45) [0]

Как завершить работу компьютера без спрашивания о подключенных пользователей и о незакрытых дос-приложений!


 
Knight ©   (2001-11-13 17:51) [1]

Удалено модератором


 
AlexKniga   (2001-11-13 18:29) [2]

То бишь:
"rundll32.exe shell32.dll,SHExitWindowsEx 4"




 
Knight ©   (2001-11-13 18:35) [3]

Это не интересно, долго, нудно, не по-Дельфийчки... :)))


 
bob1   (2001-11-13 19:00) [4]

От Andrey Klimov"a

Работает как часы

unit WinReboot;

(* TWinReboot component (freeware)
by Barry Brannan, September 1997
(barrylb@poboxes.com)


Usage:

1. Drop TWinReboot component on a form.
2. Call WinReboot1.WinExit(flags)

Where flags must be one of the following:

EWX_LOGOFF - Shuts down processes and logs user off
EWX_REBOOT - Shuts down the restarts the system
EWX_SHUTDOWN - Shuts down system

The following attributes may be combined (OR"d) with above flags

EWX_POWEROFF - shuts down system and turns off the power.
EWX_FORCE - forces processes to terminate.


Example:
WinReboot1.WinExit(EWX_REBOOT or EWX_FORCE);
*)

interface

uses
Windows, Classes;

type
TWinReboot = class(TComponent)
private
function SetPrivilege(privilegeName: string; enable: boolean): boolean;
public
function WinExit(flags: integer): boolean;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("Samples"! , [TWinReboot]);
end;

function TWinReboot.SetPrivilege(privilegeName: string; enable: boolean): boolean;
var
tpPrev,
tp : TTokenPrivileges;
token : THandle;
dwRetLen : DWord;
begin
result := False;

OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, token);

tp.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID) then
begin
if enable then
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
tp.Privileges[0].Attributes := 0;

dwRetLen := 0;
result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);
end;
CloseHandle(token);
end;


function TWinReboot.WinExit(flags: integer): boolean;
begin
Result := True;
SetPrivilege("SeShutdownPrivilege", true);
if not ExitWindowsEx(flags, 0) then
Result := False;
SetPrivilege("SeShutdownPrivilege", False);
end;

end.




 
Filat ©   (2001-11-13 20:02) [5]

Красиво, но долго и нудно, есть функция для завершения, похожая на эту, поищешь, но перегрузить тачку, не зависимо от того что открыто
-> ExitWindowsEx(EWX_REBOOT,0);
Дёшево и сердито. Первый раз когда проверял даже в некоторой степени прикололся :))))))))))


 
Tosov ©   (2001-11-13 20:16) [6]

Для NT/Win2000/XP посмотри здесь:
http://delphi.xonix.ru/faq/system/shutdown01.shtml
http://delphi.xonix.ru/faq/system/shutdown02.shtml


 
bob1   (2001-11-14 08:39) [7]

Для Filat

Эта функция не работает на NT4, без установки соответствующей
привелегии


 
Zyv   (2001-12-07 17:17) [8]

Очень подробно для всех систем см.
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1007368114&n=2



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
14-32548
Digitman
2002-01-25 16:30
2002.03.11
Гуртовщики мыши


3-32416
Димка-1200
2002-02-12 02:05
2002.03.11
Какой вариант реализации БД выбрать ?


1-32501
greenrul
2002-02-24 14:55
2002.03.11
Как сделать форму всегда


14-32550
PEC
2002-01-21 11:48
2002.03.11
файлы и папки!


1-32509
Igor_
2002-02-25 12:50
2002.03.11
Как определить сколько дней в заданном месяце