Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Serhij
4 / 4 / 2
Регистрация: 23.11.2008
Сообщений: 44
#1

как вызвать перезагрузку компа - C++ Builder

30.11.2008, 20:04. Просмотров 2480. Ответов 4
Метки нет (Все метки)

Пацаны подскажете как вызвать перезагрузку компа через клик по форме, или кнопке?
Может есть специальная ф-я?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2008, 20:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос как вызвать перезагрузку компа (C++ Builder):

Как вызвать браузер?
Мне надо чтобы при нажатии кнопки открывалась ссылка. На открываться она должна...

Как отловить ситуацию выключения компа?
Пишу программу, которая живёт в tray. В итоге нормальным действием является...

Как создать и вызвать функцию?
Вот например в cpp пишу void showmes() { ShowMessage("LOL?"); } Нужно ее...

Как вызвать OpenDialog и SaveDialog?
Как вызвать OpenDialog и SaveDialog и получить имя файла...?

Как правильно вызвать объект
Доброго времени суток, такое дело создаю свою функцию и из неё вызвать Label,...

Как правильно вызвать событие ?
Добрый день. Использую контрол типа TCSpinEdit в связке с кнопкой TButton....

4
Matskoff-Lion
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 41
30.11.2008, 20:18 #2
Функция system
А аргумент как соответствующая команда в терминале
0
4Death
0 / 0 / 0
Регистрация: 01.12.2008
Сообщений: 2
05.12.2008, 02:21 #3
Для выключения, перезагрузки компа необходимо подключить.
C++
1
2
3
4
5
6
#include <windows.h>
#include <Winuser.h>
 
ExitWindowsEx(EWX_SHUTDOWN, 0); //Выключить
 
ExitWindowsEx(EWX_REBOOT, 0); //Перезагрузка
Но для использования ExitWindowsEx() в NT/2000/XP необходимо иметь
привилегию SE_SHUTDOWN_NAME, по умолчанию не установленную
даже для администратора. Установить ее можно нижеприведенным кодом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
HANDLE hToken;
TOKEN_PRIVILEGES* NewState;
OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES, 
                 &hToken);
NewState = (TOKEN_PRIVILEGES*) malloc (sizeof 
             (TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES));
NewState->PrivilegeCount = 1;
LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME, 
                         &NewState->Privileges[0].Luid);
NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL);
free (NewState);
CloseHandle (hToken);
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,803
Завершенные тесты: 1
05.12.2008, 09:28 #4
Код
int ShutdownWindows(bool isReboot)
{
  HANDLE            hToken;
  LUID              takeOwnershipValue;
  TOKEN_PRIVILEGES  tkp;
  if (!OpenProcessToken(GetCurrentProcess(),
                        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
    return 0;
  if (!LookupPrivilegeValue(0, SE_SHUTDOWN_NAME, &takeOwnershipValue))
    return 0;
  tkp.PrivilegeCount = 1;
  tkp.Privileges[0].Luid = takeOwnershipValue;
  tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken, false, &tkp, sizeof(TOKEN_PRIVILEGES), 0, 0);
  if (GetLastError())
    return 0;
  if(!isReboot)
     //выключение
     return ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN, 0);
  else
     //перезагрузка
     return ExitWindowsEx(EWX_FORCE | EWX_REBOOT, 0);
}
0
QQ
2 / 2 / 1
Регистрация: 18.11.2008
Сообщений: 13
02.01.2009, 23:08 #5
Выключение:
ExitWindowsEx(EWX_SHUTDOWN, 0);
Перезагрузка:
ExitWindowsEx(EWX_REBOOT, 0);
РеЛогон:
ExitWindowsEx(EWX_LOGOFF, 0);
Ни чего подключать и менять не надо, все и так отлично работает
0
02.01.2009, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2009, 23:08
Привет! Вот еще темы с решениями:

Как вызвать метод кнопки?
Доброго времени суток,как сделать что при каком либо условии выполняло то что...

Как правильно вызвать ShellExecute
Не получается открыть ворд файл. Пишу вот такой код. Нету ошибок,но при...

Как создать ссылки для скачивания с компа
Как создать ссылки для скачивания с компа при нажатии появлялось окно выбора...

Как вызвать функцию принадлежащую классу?
Есть функция: void __fastcall CVolumeOutWave::SetCurrentVolume( DWORD dwValue...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru