|
Вопрос # 1 955/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты! Подскажите какой код надо прописать, чтобы, например при нажатии кнопки, выполнелась перезагрузка компьютера!
Заранее спасибо!
 |
Вопрос задал: Ученый (статус: 8-ой класс)
Вопрос отправлен: 2 октября 2008, 11:52
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Аксион
Здравствуйте, Ученый!
Попробуйте вот это:
ExitWindowsEx(EWX_LOGOFF or ewx_force,0);
для выключения.
И это:
ExitWindowsEx(EWX_FORCE or ewx_force,0);
для перезагрузки.
 |
Ответ отправил: Аксион (статус: 4-ый класс)
Время отправки: 2 октября 2008, 12:47
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Николай Рубан
Здравствуйте, Ученый!
Именно для перезагрузки компьютера в целом, необходимо использовать
ExitWindowsEx(EWX_REBOOT,0);
Соответственно для выключения:
ExitWindowsEx(EWX_SHUTDOWN,0);
Good Luck!
 |
Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 2 октября 2008, 15:58
Оценка за ответ: 5
Комментарий к оценке: Вы даже не представляете на сколько огромное спасибо!!!!
|
Мини-форум вопроса
Всего сообщений: 19; последнее сообщение — 2 октября 2008, 17:18; участников в обсуждении: 4.
|
Вадим К (статус: Академик), 2 октября 2008, 12:06 [#1]:
Блазера надо просить персонально. Я когда то ему код рисовал
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Пупкин В.В. (статус: 1-ый класс), 2 октября 2008, 13:02 [#2]:
вариантов много, но в варианте Блазера надо еще с привелегиями возится для NT. Еще один вариант - в uses ShellApi;
в коде ShellExecute(0,'open','shutdown','/r /f',nil,0);
вот и все если ничего не напутал.
|
|
Вадим К (статус: Академик), 2 октября 2008, 13:05 [#3]:
в этом варианте тоже далеко не факт, что получиться перезагрузка. Может быть это гость и ему закрыт доступ.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Пупкин В.В. (статус: 1-ый класс), 2 октября 2008, 13:11 [#4]:
гостю нельзя выключить комп или перезагрузить? хотя возможно в компьютерных клубах, а так.
|
|
Пупкин В.В. (статус: 1-ый класс), 2 октября 2008, 13:15 [#5]:
если гостю нельзя, то и ExitWindowsEx(EWX_LOGOFF or ewx_force,0); не пройдет
|
|
Вадим К (статус: Академик), 2 октября 2008, 13:39 [#6]:
Не обязательно в компьютерных клубах.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 15:50 [#7]:
Делаю как посоветовал Блазер! Всё идёт! Но происходит перезагрузка винды! а мне бы хотелось чтобы перезагружался полностью компьтер! Help me please....
|
|
Вадим К (статус: Академик), 2 октября 2008, 16:08 [#8]:
Под XP/Vista перегрузка винды без перегрузки компьютера маловозможна.
Может быть только сеанс перегружается.
Случайно не Виста?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 16:18 [#9]:
да нет XP! Только поверх ее Vista пак установлен! и вы правы перезагружается не комп, а сеанс !
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 16:21 [#10]:
to Николай Рубан пушу как вы сказали! вообще ничего не происходит!
|
|
Вадим К (статус: Академик), 2 октября 2008, 16:22 [#11]:
Попробуйте указать такую константу EWX_REBOOT как параметр. Надеюсь сами догадаетесь, куда писать.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 16:24 [#12]:
неа недогадаюсь! объясните пожалуйста если это вас сильно не затруднит....
|
|
Вадим К (статус: Академик), 2 октября 2008, 16:34 [#13]:
ну так ExitWindowsEx(EWX_REBOOT,0);
хотя это уже в ответах писал Николай Рубан
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 16:43 [#14]:
проблема какая! Пишу: procedure TForm3.Timer1Timer(Sender: TObject);
begin
a:=a+1;
if a=1 then label1.caption:='4';
if a=2 then label1.caption:='3';
if a=3 then label1.caption:='2';
if a=4 then label1.caption:='1';
if a=5 then label1.caption:='0';
if a=6 then ExitWindowsEx(EWX_REBOOT,0);
end;
Доходит время, а перезагрузки нет! Хотя в случае который предлагал Блазер всё работало, только перезагружался сеанс а не комп!
|
|
Аксион (статус: 4-ый класс), 2 октября 2008, 16:47 [#15]:
Мм..бомба замедленного действия
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 16:50 [#16]:
не совсем! не работает пока!
|
|
Пупкин В.В. (статус: 1-ый класс), 2 октября 2008, 16:56 [#17]:
не проще ли при иницилизации a:=4;
а в таймере label1.caption:=inttostr(a);
dec(a);
if a=0 then ExitWindowsEx(EWX_REBOOT,0);
|
|
Ученый (статус: 8-ой класс), 2 октября 2008, 17:04 [#18]:
Результат тотже! Ничего не происходит! да к томуже теперь таймер не идёт!
|
|
Пупкин В.В. (статус: 1-ый класс), 2 октября 2008, 17:18 [#19]:
ясное дело что ошибка была не в этом просто был корявый код с кучей if А если вам надо было до 150 считать былоб 150 ифов ? =))))
и ваще множественный выбор - опкратор case.
А ошибка скорее всего в том что условие не выполняется.
или в другом чем из предоставленого кода не понятно.
|
31 января 2011, 19:31: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|