Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Morpheus, ну, не знаю. У меня под XP SP3 RU код из поста #2 работает, как и заявлено [в том числе и ручном запуске *.scr, и на просмотре ], проверялось с помощью Process Monitor. Да, и для начала работы подписчика оказалось достаточно только скомпилировать *.mof, не потребовалось ни рестарта службы, ни перезагрузки.

P.S. Как у Вас заработает, всё ж добавьте в оба запроса проверку на «/s»:
Код: Выделить весь код
    Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 "
            "WHERE TargetInstance ISA \"Win32_Process\" "
            "AND TargetInstance.Name LIKE \"%%.scr\" "
            "AND TargetInstance.CommandLine LIKE \"%%.scr /s\"";
а то будет срабатывать даже на вкладке заставки свойств экрана.

P.P.S.
Цитата:
На мой взгляд, лучший вариант — написание самого хранителя экрана. То бишь, перевод своего кода с VBScript на, к примеру, AutoIt (дабы осталась поддержка OLE Automation + лицензионная чистота, потому про «большой» VB/VB.Net не поминаю) и добавление кода, реализующего минимальную обработку ключей запуска этого хранителя экрана («/c», «/s», «/p») и остановку по приходу события от клавиатуры/мыши. Ну, а в нём уже делай, что хочешь, хоть внутри себя, хоть внешним приложением — никто мешать не будет, ведь он сам и есть хранитель экрана. Примерно на такой основе сделан хранитель экрана Avast .
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:20, 25-05-2010 | #16