Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перезагрузка, Проблема перегрузить комп через паскаль 
:(
    Опции темы
Гость_Tosha_K2000
Дата 14.12.2003, 04:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите пожалуйсто, какой командой (или чем) в паскале можно перезагрузить комп (win98)?
  Вверх
Illusion Dolphin
Дата 14.12.2003, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 4
Всего: 63



Вот тебе компонент (взят с этого же форума), который перезагружает комп под любой видноуз...
Код

unit XReboot;

{
TXWinReboot 2.0
===============
A component for computer restart, reboot, shutdown, suspend and hibernate.

Freeware.

Copyright © 1998 Roman Stedronsky, [email protected].

All rights reserved. You may use this software in an application
without fee or royalty, provided this copyright notice remains intact.

properties:

  property Operation: TRebootOperation;  type of reboot operation
roLogOff         Shuts down all processes, then it logs the user off.
roReboot  Shuts down the system and then restarts the system.
roShutDown  Shuts down the system, flushs file buffers, stops processes.
roSuspend  Suspends using RAM-alive technique.
roHibernate  Suspends using hibernate technique.
  property PowerOff: boolean;    Shuts down the system and turns off the power (only with roShutDown).
  property ForceTerminateProcesses: boolean;  Forces processes to terminate.

methods:

  function Execute: boolean;    reboot
}

interface

uses
Windows, Classes;

type
TRebootOperation = (roLogOff, roReboot, roShutDown, roSuspend, roHibernate);

type
TXWinReboot = class(TComponent)
protected
  FOperation: TRebootOperation;
  FPowerOff: boolean;
  FForceTerminateProcesses: boolean;
  function SetShutdownPrivilege(Enable: boolean): boolean;
public
  constructor Create(AOwner: TComponent); override;
  function Execute: boolean;
published
  property Operation: TRebootOperation read FOperation write FOperation default roReboot;
  property PowerOff: boolean read FPowerOff write FPowerOff default false;
  property ForceTerminateProcesses: boolean read FForceTerminateProcesses write FForceTerminateProcesses default false;
end;

procedure Register;

implementation

const
cRebootFlags: array[TRebootOperation] of integer = (EWX_LOGOFF, EWX_REBOOT, EWX_SHUTDOWN, 0, 0);
cPowerOff = EWX_POWEROFF;
cForceTerminateProcesses = EWX_FORCE;
cPrivilegeName = 'SeShutdownPrivilege';

constructor TXWinReboot.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Operation := roReboot;
PowerOff := false;
ForceTerminateProcesses := false;
end;

function TXWinReboot.SetShutdownPrivilege(Enable: boolean): boolean;
var
PrevPrivileges: TTokenPrivileges;
Privileges: TTokenPrivileges;
Token: THandle;
dwRetLen: DWord;
begin
Result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
Privileges.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, PChar(cPrivilegeName), Privileges.Privileges[0].LUID) then
begin
  if Enable then
    Privileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
  else
    Privileges.Privileges[0].Attributes := 0;
  dwRetLen := 0;
  Result := AdjustTokenPrivileges(Token, False, Privileges, SizeOf(PrevPrivileges), PrevPrivileges, dwRetLen);
end;
CloseHandle(Token);
end;

function TXWinReboot.Execute: boolean;
var
Flags: integer;
begin
SetShutdownPrivilege(true);
if Operation in [roLogOff..roShutDown] then
begin
  Flags := cRebootFlags[FOperation];
  if FPowerOff then Flags := Flags or cPowerOff;
  if FForceTerminateProcesses then Flags := Flags or cForceTerminateProcesses;
  Result := ExitWindowsEx(Flags, 0);
end
else
  Result := SetSystemPowerState(Operation = roSuspend, FForceTerminateProcesses);
SetShutdownPrivilege(false);
end;

procedure Register;
begin
RegisterComponents('Extra', [TXWinReboot]);
end;

end.



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Letov
Дата 31.5.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Код

uses Windows;

...

ExitWindowsEx(par, 0);

Где вместо par можно выставить 
EWX_SHUTDOWN - перезагрузка с сохранением;
EWX_FORCE - компьютер выключится без предупреждения и со скоростью света.


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.