Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перезагрузка компьютера [D7, WinXP]


Skiner_X ©   (2004-06-05 14:15:00) 

Подскажыте пожалуйста, как перезагрузить мне полностю компьютер?


YuRock   (2004-06-05 21:17:00) [1]

Вот, бери:


function Restart_polnostyu_kompyuter: Boolean;
var
 hToken : THANDLE;
 tkp : TTokenPrivileges;
 rl : DWORD;
begin
 Result := False;

 OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
 if not (LookupPrivilegeValue(nil, LPSTR('SeShutdownPrivilege'), tkp.Privileges[0].Luid)) then begin
   MessageBox(0, 'Не достаточно прав для перезагрузки', 'Ошибка', MB_ICONERROR or MB_TASKMODAL);
   Exit;
 end;
 tkp.PrivilegeCount := 1;
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);

 Result := ExitWindowsEx(EWX_REBOOT, 0);
end;


Marser   (2004-06-05 20:56:00) [2]

Компьютер полностью, тумбочку частично...

> >можно использовать команду shotdown
>
> Пристрелить системный блок? Как вариант.

:-)


parovoZZ   (2004-06-05 20:20:00) [3]

А ShellExecute что возвращает?


VMcL   (2004-06-05 19:43:00) [4]

>> Cardinal ©  (05.06.04 15:53) [5]

> можно использовать команду shotdown

Пристрелить системный блок? Как вариант.


Sanek_metaller   (2004-06-05 19:12:00) [5]

А что его по частям можно перезагружать?:)


Cardinal   (2004-06-05 15:53:00) [6]

А теперь мое:

можно использовать команду shotdown

Параметры:

-s     выключить
-r     перезагрузить
-i     вызвать диалоговое окно и указать нужные параметры


Cardinal   (2004-06-05 15:51:00) [7]

Писал не я:

Можно использовать из приложения Дельфи с помощью следующей конструкции:
ShellExecute(Application.Handle,
 Pchar('Open'),Pchar('C:\Windows\Rundll32.exe'),
 Pchar(команда),
 Pchar('C:\Windows'),SW_SHOWNORMAL);
где: команда - одна из перечисленных ниже

Например, выход из Windows без любых сообщений/вопросов:

ShellExecute(Application.Handle,
  Pchar('Open'),Pchar('C:\Windows\Rundll32.exe'),
  Pchar('krnl386.exe,exitkernel'),
  Pchar('C:\Windows'),SW_SHOWNORMAL);

"rundll32 shell32,Control_RunDLL" - Выводит "Панель управления"
"rundll32 shell32,OpenAs_RunDLL" - Выводит окошко - "Открыть с помощью.."
"rundll32 shell32,ShellAboutA Info-Box" - Покозать окно "About Windows"
"rundll32 shell32,Control_RunDLL desk.cpl" - Открыть "Свойства Экрана"
"rundll32 user,cascadechildwindows" - Сортировка окон "Каскадом" (Как в Win 3.x)
"rundll32 user,tilechildwindows" - Сместить Окна в низ
"rundll32 user,repaintscreen" - Обновить рабочий стол
"rundll32 shell,shellexecute Explorer" - Запустить проводник Windows.
"rundll32 keyboard,disable" - Вырубить Клавиатуру! (Вот Это я понимаю Заподло!)
"rundll32 mouse,disable" - Вырубить Мышь! (У Шефа Будет припадок:)))
"rundll32 user,swapmousebutton" - Поменять Местами клавиши Мыша! (Во мля! и этого Дядя Билли не забыл!)
"rundll32 user,setcursorpos" - Сместить курсор крысы в левый верхний угол
"rundll32 user,wnetconnectdialog" - Вызвать окно "Подключение сетевого диска"
"rundll32 user,wnetdisconnectdialog" - Вызвать окно "Отключение сетевого диска"
"rundll32 user,disableoemlayer" - Спровоцировать сбой!!! (Знаю, сам сразу не поверил, но это FUсKт...)
"rundll32 diskcopy,DiskCopyRunDll" - Показать окно "Copy Disk"
"rundll32 rnaui.dll,RnaWizard" - Вывод окна "Установка Связи", с ключем "/1" - без окна
"rundll32 shell32,SHFormatDrive" - Окно "Форматирование: Диск3,5(А)" вызвать
"rundll32 shell32,SHExitWindowsEx -1" - Перегрузить Explorer
"rundll32 shell32,SHExitWindowsEx 1" - Выключение Компутера.
"rundll32 shell32,SHExitWindowsEx 0" - Завершить Работу Текущего Пользователя
"rundll32 shell32,SHExitWindowsEx 2" Windows-98-PC boot
"rundll32 krnl386.exe,exitkernel" - выход из Windows без любых сообщений/вопросов
"rundll rnaui.dll,RnaDial "MyConnect" - Вызвать окошко "Установка связи" с соединением "MyConnect"
"rundll32 msprint2.dll,RUNDLL_PrintTestPage" - выбрать в появившемся меню принтер и послать, а него тест
"rundll32 user,setcaretblinktime" - установить новую частоту мигания курсора
"rundll32 user,setdoubleclicktime" - установить новую скорость двойного нажатия
"rundll32 sysdm.cpl,InstallDevice_Rundll" - установить non-Plug&Play оборудование


Anatoly Podgoretsky   (2004-06-05 15:07:00) [8]

Не всегда поможет


Iraizor   (2004-06-05 15:05:00) [9]

нажми reset


Anatoly Podgoretsky   (2004-06-05 14:18:00) [10]

Полностью только выдергиванием шнура из блока.


Наверх

Титульная страница Поиск, карта сайта Написать письмо