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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> КаВыключить комп, Слабо? 
:(
    Опции темы
Punk
Дата 7.6.2002, 04:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как выключить комп чтобы Винда выгрузила ве сама не спрашивая что типа "Эту программу следует закрыть до завершения работы Виндовс"
Выгрузила все сама даже прогу которая закрывает Винду (кот надо написать)
и выключила комп
PM MAIL   Вверх
Vit
Дата 7.6.2002, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



ExitWindowsEx(EWX_FORCE,0);

или

Запуск из коммандной строки

rundll32 krnl386.exe,exitkernel

только под XP все это работает плохо. Надо думать...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 7.6.2002, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Чтобы работало под XP, NT, 2000 надо получить соответсвующую привелегию, а именно SeShutDownPriviligie

2Vit, exitkernel очень радикальный способ  :D потому что не сохраняются настройки рабочего стола, ini файлы и другие установки, зато быстро :D

Есть способ намного лучше: ф-ия SHExitWindowsEx из shell32.dll
С неё всё good. Это запуск из-под WinExec()
Программно же только с получением привелегии.
Замечу также что флаг EWX_FORCE необходим только для принудительного завершения при выдаче каких либо сообщений или модальных окон, что воспрепятствует завершению, например, "К компьютеру подключены пользователи. Данные могут быть утярены. Вы хотите завершить работу?" или сообщение, которое автор указал в вопросе.
Если нет таких сообщений EWX_FORCE не обязателен. Также есть отдельные флаги для выключение компьютера (по умолчанию - перезагрузка) или завершения сетевого сеанса.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 7.6.2002, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Song @ 07.6.2002, 00:05)
Чтобы работало под XP, NT, 2000 надо получить соответсвующую привелегию, а именно SeShutDownPriviligie

Нет, в XP похоже не в этом дело, там почему-то "krnl386.exe" и "user.exe" вообще не распознаются как DLL. Наверное заглушка какая то стоит...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 7.6.2002, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Программно работает точно. Через rundll надо попробовать.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 7.6.2002, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



И програмно и через RunDLL под XP выдает одну и ту же ошибку, что то типа "Неправильный формат krnl32.exe", точное сообщение я напишу чуть позже - прийду домой запущу и напишу.

PS. Кстати когда у меня стоял 2000 то работали все эти функции как часы.

To Song:  если не веришь, напиши процедуру - я ее в точности выполню на своем компьютере и пришлю результат. Меня чесно говоря результат тоже удивил.




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 7.6.2002, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Программно имеется ввиду WinExec(...rundll...) ?
Я-то имел ввиду ExitWindowsEx()


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 8.6.2002, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Exitwindows работает, а вот попытка обращения к любой процедуре из krnl32.exe и User32.exe хоть из программы, хоть через RunDLL вызывает на моем WinXP rus следующее сообщение, привожу дословно:


Приложение или библиотека krnl32.exe не является образом программы для Windows NT. Проверьте назначение текущего диска.


Ну и как это понимать?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 8.6.2002, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

Репутация: 14
Всего: 115



Ну я думаю (потому что лень проверять), что надо убить все активные процессы кроме Kernel32 (Тогда по идеи Виндовоз небудет сопротивляться) , ну а дольше ExitWindowsEx(EWX_FORCE,0);
PM   Вверх
Song
Дата 9.6.2002, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Цитата(RAdmin @ 08.6.2002, 22:41)
Ну я думаю (потому что лень проверять), что надо убить все активные процессы кроме Kernel32 (Тогда по идеи Виндовоз небудет сопротивляться) , ну а дольше ExitWindowsEx(EWX_FORCE,0);

ExitWindowsEx() сам всё убьёт.

2Vit, Наверно в XP шнягу через rundll просто убрали.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
RA
Дата 9.6.2002, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

Репутация: 14
Всего: 115



Код
ExitWindowsEx() сам всё убьёт.

2 Song. Вот в XP может и убъёт, а в 9x-ME очень часто такая маза непроходит, пока не убъёшь какойнить процесс. (взято из личного опыта)
PM   Вверх
Song
Дата 9.6.2002, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Нет, это не нормальное поведение. ExitWindowsEx() должен выключать всё в любом случае. Если какой-то процесс подвисает, значит пора систему сносить.
В Win95/98 в подавляющем в большинстве случае вообще можно обойтись ExitWindows() просто.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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