Мой сервис не может установить реквизиты звукового микшера WinXP на удаленном компьютере при запуске из сеанса удаленного входа - PullRequest
0 голосов
/ 25 ноября 2011

Название не отпугнуло вас. Большой! Вот что я пытаюсь сделать: У меня есть сервис, который в какой-то момент играет очень важный звук. Поскольку это так важно, я проверяю, что микшер включен и что при запуске громкость на должном уровне. Это прекрасно работает, когда я запускаю службу, вошедшую локально на компьютер, на котором она выполняется. Однако, когда я запускаю службу из сеанса удаленного рабочего стола, он не может получить управление громкостью, если я выбираю «Играть на этом компьютере» при входе в систему. Очевидным решением является «Выберите« Воспроизвести на удаленном компьютере »при входе в систему», но по различным причинам удобства использования это невозможно.

Итак, M $ вопрос: «Как служба, запущенная из сеанса удаленного рабочего стола, может установить основной том локального микшера, если при входе в систему было выбрано« Play on this computer »?"

Сервис работает на WinXP, и я использую ужасный Mixer * API из C ++.

Спасибо, Рикард

1 Ответ

0 голосов
/ 25 ноября 2011

Проблема в том, что в качестве службы ОС вы не можете управлять громкостью для пользователя TS, если у вас нет кода, запущенного в сеансе пользователя TS. Чтобы удаленно передавать звук с сервера на клиент, служба TS виртуализирует все аудио API. Эти виртуальные элементы управления недоступны из служб Windows.

Чтобы решить вашу программу, вам потребуется код, запущенный в сеансе пользователя. Я мог бы предложить запланированное задание, которое запускается при входе пользователя в систему. API планировщика задач позволяют вам создавать задачу, которая вызывает создание COM-объекта при входе пользователя в систему. С помощью этого COM-объекта вы можете связаться с вашим сервисом, а затем выполнить операцию отключения звука от имени пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...