Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как в С++ написать резидента? (http://forum.oszone.net/showthread.php?t=29591)

Turman 07-07-2004 02:02 204798

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

bilytur 07-07-2004 03:55 204799

А установить таймер не пробовали?
Хотя непонятно зачем это делать каждые 3 секунды...

hasherfrog 07-07-2004 09:17 204800

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

Добавлено:

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

JCooper 07-07-2004 14:37 204801

Цитата:

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

Turman 07-07-2004 16:15 204802


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


hasherfrog 08-07-2004 09:58 204803

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

Turman 14-07-2004 15:42 204804

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

hasherfrog 15-07-2004 13:48 204805

Turman
Цитата:

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

bilytur 16-07-2004 03:35 204806

Имхо, за реестром следить не нужно.
Нужно почитать про функции микшера в msdn
начните например с
mixerSetControlDetails


Время: 18:57.

Время: 18:57.
© OSzone.net 2001-