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

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

Googler


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

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


Morpheus, как вариант - сделать привязку к событию вкл./выкл. хранителя экрана статья:
Running a Program from the Command Line Based on an Event, MOF-файл:

Код: Выделить весь код
#pragma namespace ("\\\\.\\Root\\subscription")

// Создание экземпляра потребителя событий командной строки
// для запуска батника "c:\\TEST\scrstart.cmd", и
// присвоение ему псевдонима $SCRSTARTCONSUMER

instance of CommandLineEventConsumer as $SCRSTARTCONSUMER
{
	Name = "ScreenSaverStartConsumer";
	CommandLineTemplate = "c:\\TEST\\scrstart.cmd %TargetInstance.Name%";
	WorkingDirectory = "c:\\TEST";
};    

// Создание экземпляра потребителя событий командной строки
// для запуска батника "c:\\TEST\scrstop.cmd",
// присвоение ему псевдонима $SCRSTOPCONSUMER

instance of CommandLineEventConsumer as $SCRSTOPCONSUMER
{
	Name = "ScreenSaverStopConsumer";
	CommandLineTemplate = "c:\\TEST\\scrstop.cmd %TargetInstance.Name%";
	WorkingDirectory = "c:\\TEST";
};    

// Создание экземпляра фильтра событий 
// для создания нового процесса *.SCR
// и присвоение ему псевдонима $SCRSTARTFILTER

instance of __EventFilter as $SCRSTARTFILTER
{
    Name = "ScreenSaverStartFilter";
    EventNamespace = "\\\\.\\root\\cimv2";  

    Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 "
            "WHERE TargetInstance ISA \"Win32_Process\" "
            "AND TargetInstance.Name LIKE \"%%.scr\"";
    QueryLanguage = "WQL";
};

// Создание экземпляра фильтра событий 
// для удаления процесса *.SCR
// и присвоение ему псевдонима $SCRSTOPFILTER

instance of __EventFilter as $SCRSTOPFILTER
{
    Name = "ScreenSaverStopFilter";
    EventNamespace = "\\\\.\\root\\cimv2";  

    Query = "SELECT * FROM __InstanceDeletionEvent WITHIN 5 "
            "WHERE TargetInstance ISA \"Win32_Process\" "
            "AND TargetInstance.Name LIKE \"%%.scr\"";
    QueryLanguage = "WQL";
};

// Создание экземпляра связи между фильтром и подписчиком
// события запуска хранителя экрана

instance of __FilterToConsumerBinding
{
     Consumer = $SCRSTARTCONSUMER;
     Filter = $SCRSTARTFILTER;
};

// Создание экземпляра связи между фильтром и подписчиком
// события остановки хранителя экрана

instance of __FilterToConsumerBinding
{
     Consumer = $SCRSTOPCONSUMER;
     Filter = $SCRSTOPFILTER;
};
пример команды компиляции: "MOFComp SCR.MOF"

P.S. Windows 7 под рукой нет, проверял на 2003
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:58, 25-05-2010 | #2