Отслеживание выключения или перезагрузки.

Радиотехника, платы, схемы, оборудование, фото- видео- приборы, компьютеры
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Отслеживание выключения или перезагрузки.

Сообщение Sergey Ivanov »

Можно ли в :labview: отследить выключение и/или перезагрузку компьютера ? Человек кнопку отключения нажал и в лог записали это событие. Или можно отследить состояние кнопок на системном блоке (включения и перезагрузки)?
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Отслеживание выключения или перезагрузки.

Сообщение Super Star »

скорее надо капать в сторону системных событий, там все отображается
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Vitekkz88 »

Можно ли в :labview: отследить выключение и/или перезагрузку компьютера ? Человек кнопку отключения нажал и в лог записали это событие?
А у Вас перезагрузка или выключение из под LabVIEW выполняется? Можно сделать так: создать два .bat с определенным сценарием(перезагрузка или выкл) - выполнение этих bat-ников завести в LabVIEW. Перед выполнение сценария непосредственно в .vi сделать функцию записи текущего времени и действия(перезагрузка или выключение) в лог-файл.
Если необходимо отслеживать еще и выключение с помощью кнопок на системном блоке - то можно попробовать залезть в журнал событий Windows средствами LabVIEW.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Sergey Ivanov »

Super Star писал(а):скорее надо капать в сторону системных событий, там все отображается
да, стал разбираться, но больше вопросов, чем ответов.

нашёл я такую библиотеку Windows Message Queue Library

для отслеживания состояния, как я понял, нужен WM_POWERBROADCAST message
или WM_QUERYENDSESSION. Кажется, что больше первое тут подходит.

в приложенном архиве лежит Windows Message Queue Library, там есть ReadMe. От туда нашёл, что мне необходимо:

Код: Выделить всё

#define WM_QUERYENDSESSION              0x0011
#define WM_POWERBROADCAST               0x0218 
Но, при использовании этих кодов я не получаю сообщения о том, что кнопка выключения питания была выключена. Может, кто подскажет как правильно действовать ?
Снимок.JPG
архив с Windows Message Queue Library
windows_messaging_que.rar
(164.32 КБ) 141 скачивание
Vitekkz88 писал(а):А у Вас перезагрузка или выключение из под LabVIEW выполняется?
Не, как раз перезагрузка и выключение из :labview: отлично работает. Мне нужно отследить что пользователь нажал кнопку выключения или перезагрузки компьютера. Имею в виду физические кнопки на системном блоке
Снимо44к.JPG
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Отслеживание выключения или перезагрузки.

Сообщение Super Star »

Sergey Ivanov писал(а):WM_POWERBROADCAST message
разве?

#define WM_QUERYENDSESSION 0x0011
#define WM_POWERBROADCAST 0x0218

у меня кажется 109 код выдает при выключении
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Sergey Ivanov »

Super Star писал(а):
Sergey Ivanov писал(а):WM_POWERBROADCAST message
разве?
не понял. что вы имели в виду ?

Super Star писал(а):у меня кажется 109 код выдает при выключении
а как вы это узнали ?
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: Отслеживание выключения или перезагрузки.

Сообщение Super Star »

Sergey Ivanov писал(а):
а как вы это узнали ?

"просмотр событий" - виндовс - система

http://www.oszone.net/figs/u/72715/0911 ... ent-03.jpg
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Sergey Ivanov »

мне кажется, что номера не соответствуют, хотя, могу и ошибаться
Добро пожаловать на http://rk-stud.ru/
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение AlexanderKonoval »

Если честно, не совсем понимаю, как можно отследить нажатие кнопки резет, если при этом происходит просто сброс питания с матери и подача обратно, ОСь в этом вроде как участвовать не должна.

разве что паять приблуду, которая будет отслеживать нажатие клавиш, записывать их в пакет данных и по запросу системы этот пакет отправлять.
колдооооовствооооо! (С)
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение dadreamer »

Я вообще не понимаю, зачем это нужно. Не проще ли возложить эти обязанности на оператора (протоколирование включения-отключения системы). Тем более что на большинстве современных систем банально не успеет занести в лог никакие данные - быстро выключится, а уж ресет тем более сработает моментально.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение AlexanderKonoval »

dadreamer писал(а):Я вообще не понимаю, зачем это нужно. Не проще ли возложить эти обязанности на оператора (протоколирование включения-отключения системы). Тем более что на большинстве современных систем банально не успеет занести в лог никакие данные - быстро выключится, а уж ресет тем более сработает моментально.
вредителей и саботёров отслеживать, не иначе :vampire:
колдооооовствооооо! (С)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3410
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Artem.spb »

в своё время я решил такую задачу самым банальным способом.
прога при запуске записывает в лог время своего старта и сразу завершает свою работу.
сама прога прописывается в автозапуск.
причём автозапуски могут быть разные - по включению, по выходу из спящего режима, и тд
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Sergey Ivanov »

dadreamer писал(а):Я вообще не понимаю, зачем это нужно. Не проще ли возложить эти обязанности на оператора (протоколирование включения-отключения системы). Тем более что на большинстве современных систем банально не успеет занести в лог никакие данные - быстро выключится, а уж ресет тем более сработает моментально.
так в том то и дело, что необходим контроль оператора

Artem.spb писал(а):в своё время я решил такую задачу самым банальным способом.
прога при запуске записывает в лог время своего старта и сразу завершает свою работу.
сама прога прописывается в автозапуск.
причём автозапуски могут быть разные - по включению, по выходу из спящего режима, и тд
так у меня тоже самое сделано. программа прописывается в автозапуск, записывает время запуску, записывает время выключения компа ( кнопка выведена на панели программы). но, если выключить нажатием на кнопку выключения компьютера, то программа ничего не запишет. а хотелось бы, чтобы писала
Добро пожаловать на http://rk-stud.ru/
Artem.spb

Activity Автор
professor
professor
Сообщения: 3410
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение Artem.spb »

Sergey Ivanov писал(а): так у меня тоже самое сделано. программа прописывается в автозапуск, записывает время запуску, записывает время выключения компа ( кнопка выведена на панели программы). но, если выключить нажатием на кнопку выключения компьютера, то программа ничего не запишет. а хотелось бы, чтобы писала
т.е. важно время ВЫключения, а не сам факт? и не время следующего включения?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Отслеживание выключения или перезагрузки.

Сообщение dadreamer »

Sergey Ivanov писал(а):так в том то и дело, что необходим контроль оператора
Так пусть корректно завершает работу с ПО, чтобы оно могло в лог записать, а не
Sergey Ivanov писал(а):если выключить нажатием на кнопку выключения компьютера
Прописать это в руководстве оператора и в прочих инструкциях. И можно снять с себя долю ответственности. :)
Ответить

Вернуться в «Железо»