Войти

Показать полную графическую версию : Как в С++ написать резидента?


Turman
07-07-2004, 02:02
Как написать такую программу на с++ чтобы она постоянно выполнялась?
Зациклить ее чтоли?
(мне надо чтобы источник звука постоянно устанавливать на микрофон-т.е. допустим каждые три секунды подправлять реестр виндоуз)

bilytur
07-07-2004, 03:55
А установить таймер не пробовали?
Хотя непонятно зачем это делать каждые 3 секунды...

hasherfrog
07-07-2004, 09:17
Turman
Если программу просто зациклить while(TRUE) {} , то она сожрёт все ресурсы. Таймер - идеальное решение.

Добавлено:

Что-то мне сразу в голову не пришло. Может, Вы про "службы" речь ведёте? Если винда имеются ввиду.

JCooper
07-07-2004, 14:37
(мне надо чтобы источник звука постоянно устанавливать на микрофон-т.е. допустим каждые три секунды подправлять реестр виндоуз)
Нифига не понял....

Turman
07-07-2004, 16:15
Наверно мне надо было поподробнее описать проблему.
Дело в том что когда мне приходилось работать с программой windvd creator 2 (которая позволяет редактировать и захватывать видео с разных источников-например с телевизора) ,то эта программа при каждой операции без моего ведома устанавливает источник записи звука на cd digital, а мне надо чтобы звук записывался с микрофонного входа.И если я опять изменю источник на микрофон то она опять его  сама установит на cd через некоторое время.
Причем изменяет она источник при каждой моей операции( которые я делаю не чаще чем раз в три секунды примерно).
Тогда мне посоветовали посмотреть в реестре тот ключ который отвечает за источник записи звука.Ну его легко было вычислить с помощью программы сканирования реестра.А потом с помощью программы (на c++) постоянно изменять значение этого ключа.
Я С++ только начинаю изучать и хотел понять как можно написать программу которая не очень отягощала компьютер и постоянно изменяла реестр.Т.е. чтобы ее один раз запустить и чтобы она постояно работала.Я так понял что надо таймером воспользоваться.Буду разбираться...
hasherfrog
К сожалению пока про "службы" не знаю...

hasherfrog
08-07-2004, 09:58
Ясно. Можно написать программу, которая просто делает Sleep(3000); в цикле. Сложности с таймером ни к чему.

Turman
14-07-2004, 15:42
hasherfrog
Спасибо!Вроде получилось!
Только с реестром пока как-то не очень получается-изменять то я его изменяю-но вот эти изменения не сказываются никак!!!Неужели эти изменения вступят в силу только после перезагрузки???А как же тогда эта программа windvd меняет програмно источник звука???

hasherfrog
15-07-2004, 13:48
Turman
вступят в силу только после перезагрузки?
Скорее, они вступят в силу, когда винды (какая-то библиотека, отвечающая за работу со звуком) перечитает данный ключ реестра. А вот кто это (и как ему сказать о необходимости перепроверится) - я не знаю. Можно попробовать выяснить. Во-первых, поискать инфу в сети. Где-нибудь на сайтах про игрушки, например. Во-вторых, через RegMon отследить, кто и когда запрашивает ключи реестра при запуске стандартной виндовой "панели настройки звука" (или как её там).

bilytur
16-07-2004, 03:35
Имхо, за реестром следить не нужно.
Нужно почитать про функции микшера в msdn
начните например с
mixerSetControlDetails




© OSzone.net 2001-2012