Написал свой screensaver (переделал из SDK). Теперь хочу отслеживать какие прогаммы работают в момент его активизации и запрещать его запуск если работает что-то критичное, например Media Player . Пытался делать это при WM_CREATE, но в этот момент окна всех приложений уже погашены и перебор GetTopWindow..GetNextWindow ничего не дает!!! Видимо надо с процессами поработать, но как? Подскажите как решить эту проблему. Заранее спасибо!
Здравствуйте Alex001, Вы писали:
A>Написал свой screensaver (переделал из SDK). Теперь хочу отслеживать какие прогаммы работают в момент его активизации и запрещать его запуск если работает что-то критичное, например Media Player :)) . Пытался делать это при WM_CREATE, но в этот момент окна всех приложений уже погашены и перебор GetTopWindow..GetNextWindow ничего не дает!!! Видимо надо с процессами поработать, но как? Подскажите как решить эту проблему. Заранее спасибо!
Здравствуйте Alex001, Вы писали:
A>Я же говорю все окна погашены и поэтому Z-order пуст
Это не так, поверь. С чего ему быть пустым? Твой сэйвер просто рисуется поверх существующих окон.
GetTopWindow ничего не находит, т.к. она ищет дочерние окна твоего сэйвера. Их, возможно, у него нет, вот z-order и пуст. У меня она тоже ничего не нашла
Здравствуйте Олег Куликов, Вы писали:
ОК>Здравствуйте Alex001, Вы писали:
A>>Я же говорю все окна погашены и поэтому Z-order пуст
ОК>Это не так, поверь. С чего ему быть пустым? Твой сэйвер просто рисуется поверх существующих окон. ОК>GetTopWindow ничего не находит, т.к. она ищет дочерние окна твоего сэйвера. Их, возможно, у него нет, вот z-order и пуст. У меня она тоже ничего не нашла ОК>
окон других нет, потому что ScreenSaver — это совсем другой десктоп в NT.
потому перебором окон это не решить.
надо процессы перебирать, что по всей видимости было удачно сделано.
Здравствуйте Afx, Вы писали:
Afx>Здравствуйте Alex001, Вы писали:
A>>Написал свой screensaver (переделал из SDK). Теперь хочу отслеживать какие прогаммы работают в момент его активизации и запрещать его запуск если работает что-то критичное, например Media Player :)) . Пытался делать это при WM_CREATE, но в этот момент окна всех приложений уже погашены и перебор GetTopWindow..GetNextWindow ничего не дает!!! Видимо надо с процессами поработать, но как? Подскажите как решить эту проблему. Заранее спасибо!
Afx>Смотри ToolHelp функции
toolhelp функции есть только в Win9x и Win2000, в NT их нет. в NT можно использовать EnumProcesses из PSAPI.dll