Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
14-32577
33
2002-01-23 09:09
2002.03.11
Русская фантастика.Что нового?


7-32593
xprophet
2001-12-07 09:13
2002.03.11
Sockets & protocols


3-32417
xmapa
2002-02-13 09:41
2002.03.11
FIBPlus: TpFIBDataset.RefreshSQL


14-32544
vopros
2002-01-23 16:48
2002.03.11
Всем кому нужна помощь по программированию


3-32425
JEff
2002-02-04 19:02
2002.03.11
Ребята!!! У меня к вам вопросик (дилетантского хар-ра)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский