Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на Basic / VBA

Выпуск № 115
от 16.07.2004, 20:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 252
Отправлено ответов: 199
Активность: 78.96 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Licvidator
Статус: Профессиональный
Общий рейтинг: 106.52
URL: PC Info
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 250. Привет всем. Подскажите, плиз, как на VB сделать компу shutdown так, чтоб ему было всё равно какая п... (ответов: 1)

Вопросов: 1, ответов: 1


 Вопрос № 250

Привет всем. Подскажите, плиз, как на VB сделать компу shutdown так, чтоб ему было всё равно какая прога счас бежит... ну, типа, чтоб не кричал, что какому-то процессу нужно время для завершения начатого.. если конечно так возможно. Если нет, то хотябы, как дать команду на shutdown.



Вопрос отправлен: 13.07.2004, 20:30
Отправитель: n-aga

[Следующий вопрос >>] [Список вопросов]

Отвечает Licvidator

Доброе время суток, n-aga!
Вопрос интересный:) Выключить/перезагрузить компьютер можно с помощью API ExitWindowsEx. В Win9x и Me система не требует токенов (Token) и задача выключения компа выглядит так (пишется в модуле либо в форме, тогда объявляйте как Private):
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EWX_FORCE = 4
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1

Юзать так: ExitWindowsEx EWX_FORCE + EWX_SHUTDOWN, 0

Для NT'шных систем немного сложнее. Код доступен по адресу http://www.vbnet.ru/faq/showtopic.asp?id=103.

Теперь что касается "тихого" выключения. Можно попробовать юзать API TerminateProcess для всех процессов, однако при этом придется смотреть, чтобы случайно не "прибить" процесс svchost (если Вы знаете про вирусы типа LoveSаn, поймете почему;) И вообще, это довольно геморройный способ и полной уверенности нет, что сработает.
Есть вариант намного безопаснее (в том плане, что не надо будет мучаться с процессами, но требует прав для записи в реестр). Для этого в реестре надо изменить следующие значения:
[HKEY_CURRENT_USER\Control Panel\Desktop] параметр "AutoEndTasks"="1 (убивать все зависшие программы без предупреждения)
"HungAppTimeout"="10" (в принципе, эта действие этого ключа уже "эмулировано" вышеприведенным ключом, но лучше дописать).
Имейте в виду, что эти изменения в реестре начнут действовать после перезагрузки компа и будет влиять на все программы без исключения! Т.е. проще говоря, система всегда (пока "живы" те ключи реестра) будет убивать приложения и сервисы без предупреждения (при этом могут возникнуть проблемы с невовремя убитыми приложениями и процессами - они не успеют записать свои данные).
Удачи!

Ответ отправлен: 15.07.2004, 13:01
Отправитель: Licvidator



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (12)
Perl (4)
Builder / Delphi (13)
Pascal (21)
Basic / VBA (4)
Java / JavaScript (3)
PHP (12)
Криптография (6)
WinAPI (9)
Радиоэлектроника (7)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (50)
"Железо" (33)
Поиск информации (15)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (11)
Юристу
Гражданское право (9)
Семейное право (7)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Адрес подписки
Отписаться

В избранное