Отключить систему из кода - PullRequest
1 голос
/ 04 марта 2012

Я пытаюсь отключить динамик ПК из моего консольного приложения C #. Я попробовал код, предложенный на этом сайте , и он не влияет на громкость на моей машине. Мне нужен код для работы на Win7, и я предполагаю, что код работает только на XP. Я также попробовал это:

[DllImport("winmm.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
public static extern int waveOutSetVolume(IntPtr uDeviceID, int dwVolume);

waveOutSetVolume(IntPtr.Zero, 0);

Но когда вызывается метод waveOutSetVolume, система не отключается и не выдает никаких ошибок. Есть ли способ отключить компьютер от C # в Win7?

Ответы [ 3 ]

2 голосов
/ 04 марта 2012

Я верю , это - это то, что вы ищете.это был тест с windows 7, а также этот вопрос, который задавался на SO до .Что, вероятно, поможет вам получить то, что вы ищете.

0 голосов
/ 20 января 2018

Вы можете использовать расширение AudioSwitcher.AudioApi.CoreAudio для библиотеки AudioSwitcher .Просто установите его как пакет Nuget с помощью консоли диспетчера пакетов:

Install-Package AudioSwitcher.AudioApi.CoreAudio

У него есть такие методы, как Mute, ToggleMute и свойство Volume, так что вы можете установитьзначение, которое вы хотите.

Вот пример:

using (var audio = new CoreAudioController())
{
    audio.DefaultPlaybackDevice.Volume = 50;
}
0 голосов
/ 04 марта 2012

Вы не можете отключить звук динамика ПК. Это базовое устройство, без микшера и т. Д. Из него получается постоянный объем.

В вашем примере показан код для управления микшером звуковой карты, который является совершенно другим устройством.

...