|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Как проверить что выполняется выключение компьютера а не перезагрузка ? |
|
Любой язык - Как проверить что выполняется выключение компьютера а не перезагрузка ?
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать Редактор локальной групповой политики gpedit.msc
Конфигурация компьютера - Конфигурация Windows - Сценарии - Завершение работы Мне надо перед выключением компьютера выполнить скрипт, как в скрипте определить что комп выключается а не перегружается ? |
|
Отправлено: 13:21, 01-12-2011 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Можно счетчиком будет брать только до i=1 сообщения в журнале начиная с самого последнего события
Цитата:
strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')") For Each objEvent in colLoggedEvents If i=1 Then Exit For End If If InStr(objEvent.Message, "Тип выключения: Завершить работу") or InStr(objEvent.Message, "Тип выключения: Выключение питания")> 0 Then msgbox "Выключение а не перезагрузка" End If i=i+1 Next |
|
Последний раз редактировалось Loran_rus, 02-12-2011 в 12:05. Отправлено: 11:20, 02-12-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Это неправильно...
Вот так можно сделать ? Set colLoggedEvents = objWMIService.ExecQuery("Select TOP 1 Message from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')") Или Set colLoggedEvents = objWMIService.ExecQuery("Select 1 Message from Win32_NTLogEvent Where Logfile = 'System' and SourceName='User32' and (EventCode = '1074' or EventCode = '1076')") Вот так можно? Он тут выберет только одну запись, как ее потом можно получить без FOR. т.е. как сделать МояЗапись = colLoggedEvents.Выбрать(); или МояЗапись = colLoggedEvents.Прочитать(); |
Отправлено: 12:02, 02-12-2011 | #12 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать Цитата Реаниматор:
В таком случае Ваш вариант с использованием оператора Exit For полностью решает эту задачу. Loran_rus, Реаниматор, не тратьте время попусту. В данном случае нет способа получить ссылку только на один экземпляр коллекции. Можно лишь при переборе "отсеивать" ненужные экземпляры по тому или иному признаку. |
|
Отправлено: 13:12, 02-12-2011 | #13 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Выключение компьютера при потере коннекта КАК? | interminable | Хочу все знать | 11 | 25-07-2016 21:25 | |
Интерфейс - Удаленное выключение и перезагрузка компьютера. | poisonkit | Microsoft Windows 2000/XP | 10 | 03-02-2012 17:04 | |
Перезагрузка не выполняется. | Lifpa | Непонятные проблемы с Железом | 1 | 02-09-2011 11:08 | |
Разное - Как правильно проверить что с USB | Gik | Материнские платы и память | 12 | 18-03-2011 11:10 | |
несанкционированое выключение или перезагрузка пк произошла,как узнатьпричину? | sv962 | Microsoft Windows 2000/XP | 3 | 15-06-2006 11:39 |
|