Ktoś wie, jak programowo wyciszyć wolumin systemu Windows XP przy użyciu C#?Wycisz głośność systemu Windows za pomocą C#
Odpowiedz
Będziesz prawdopodobnie chcesz użyć komendy MCI: http://msdn.microsoft.com/en-us/library/ms709461(VS.85).aspx
należy dodać, że podczas gdy ten daje dobrą ogólną kontrolę nad mikserów wejściowych i wyjściowych w systemie Windows, może masz jakieś problemy z robieniem szczegółowe kontrole, jak ustawienie wzmocnienia mikrofonu itp.
Aha, jeśli jesteś na Vista, to po prostu zapomnij. To zupełnie inny model.
Można użyć P/Invoke, jak wyjaśniono tutaj: http://www.microsoft.com/indonesia/msdn/pinvoke.aspx. W rzeczywistości wykonuje czynności w Zadaniu 1: Wycisz i Włącz dźwięk w pobliżu góry.
Natknąłem się na this project, które mogą być interesujące, jeśli używasz systemu Vista.
Stwierdzenie to dla P/Invoke:
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int WM_APPCOMMAND = 0x319;
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
a następnie wykorzystać tę linię, aby wyciszyć/wyłączyć wyciszenie dźwięku.
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr) APPCOMMAND_VOLUME_MUTE);
Pracowałem z przyjemnością w XP dzięki. Jednak używam WPF, więc nie ma tego.Handle. Zamiast tego: 'public static void ToggleMute (uchwyt IntPtr) { SendMessageW (uchwyt, WM_APPCOMMAND, uchwyt, (IntPtr) APPCOMMAND_VOLUME_MUTE); } ' w WPF Window: ' VolumeXP.ToggleMute (nowa WindowInteropHelper (this) .Handle); ' –
To ... pracował na Windows 7 - ale jestem w bibliotece, który jest uruchamiany w tle - nie w niczego, co kiedykolwiek będzie miało okno - próbuję wyciszyć inne okno - działa to - ale niezależnie od tego, co przekazuję do obsługi, (uchwyt okna innej aplikacji itp.), po prostu wycisza wielkość systemu głównego ... – BrainSlugs83
Dlaczego używasz '0x80000'? 'APPCOMMAND_VOLUME_MUTE' jest zdefiniowane jako' 8'? Jednak gdy używam '8', to się nie powiedzie, ale kiedy używam twojego' 0x80000', to działa. To jest dziwne. – Noitidart
Co można użyć dla Windows Vista/7 i 8 prawdopodobnie zbyt:
Można użyć NAudio (http://naudio.codeplex.com/releases/view/79035). Pobierz najnowszą wersję. Wyodrębnij pliki DLL i odwołaj się do biblioteki DLL NAudio w swoim projekcie C#.
Następnie dodaj następujący kod, aby przejrzeć wszystkie dostępne urządzenia audio i wyciszyć je, jeśli to możliwe.
try
{
//Instantiate an Enumerator to find audio devices
NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
//Get all the devices, no matter what condition or status
NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
//Loop through all devices
foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
{
try
{
//Show us the human understandable name of the device
System.Diagnostics.Debug.Print(dev.FriendlyName);
//Mute it
dev.AudioEndpointVolume.Mute = true;
}
catch (Exception ex)
{
//Do something with exception when an audio endpoint could not be muted
}
}
}
catch (Exception ex)
{
//When something happend that prevent us to iterate through the devices
}
Dziękuję. Ta biblioteka działała, gdy wszystkie inne, które wypróbowałem, zawiodły. Mój problem był podobny do tego, ale nie do końca taki sam. To bardzo dobre znalezisko. Chciałbym móc głosować na ciebie więcej niż raz. – David
Dzięki za przegłosowanie i opinie. Szukałem trochę czasu, zanim znalazłem łatwy sposób na wyciszenie dźwięku. Dlatego pomyślałem, rozpowszechniając wiedzę na temat niektórych pytań stackoverflow :) Cieszę się, że pomógł komuś. –
Zobacz How to programmatically mute the Windows XP Volume using C#?
void SetPlayerMute(int playerMixerNo, bool value)
{
Mixer mx = new Mixer();
mx.MixerNo = playerMixerNo;
DestinationLine dl = mx.GetDestination(Mixer.Playback);
if (dl != null)
foreach (MixerControl ctrl in dl.Controls)
if (ctrl is MixerMuteControl)
{
((MixerMuteControl)ctrl).Value = (value) ? 1 : 0;
break;
}
}
- 1. Wyszukiwanie pulpitu systemu Windows za pomocą C#
- 2. Jak możemy wykryć głośność systemu w systemie Windows 8?
- 3. Zamykanie systemu Windows za pomocą Javy
- 4. Wykryj wersję systemu Windows za pomocą JavaScript
- 5. tworzenie wygaszacza ekranu systemu Windows za pomocą Pythona?
- 6. Jak obsługiwać przesyłanie plików systemu Windows za pomocą Selenium WebDriver?
- 7. Pobieranie aktualizacji systemu Windows przy użyciu C#
- 8. Android Wear wykrywa "Wycisz"
- 9. C# Usługa główna systemu Windows
- 10. Uzyskaj folder Pulpit użytkownika za pomocą interfejsu API systemu Windows?
- 11. Uzyskiwanie strefy czasowej w systemie Windows za pomocą C++
- 12. Javascript wykrywa głośność systemu (dźwięk) i gniazdo audio podłączone do
- 13. Znajdź formantu za pomocą formantów systemu Windows Forms
- 14. Usługa spoczynku WCF Uwierzytelnianie systemu Windows za pomocą przeglądarki
- 15. Jak zaktualizować widok uproszczeń za pomocą wiersza polecenia systemu Windows?
- 16. Korzystanie z widoku debugowania za pomocą usługi systemu Windows
- 17. Wykrywanie włożenia nośnika do napędu za pomocą komunikatów systemu Windows
- 18. Jak zwiększyć nazwę folderu za pomocą wsadowego systemu Windows?
- 19. Zapisywanie zdarzeń w dzienniku zdarzeń systemu Windows za pomocą Coldfusion
- 20. Uruchamianie poleceń powłoki systemu Windows za pomocą pythona
- 21. Uwierzytelnianie systemu Windows za pomocą SignalR i samego hosta OWIN
- 22. Podłącz głośność do hosta
- 23. Najlepszy sposób konfiguracji środowiska kompilacji systemu Windows dla C/C++
- 24. Jak zmienić DNS za pomocą C# na Windows 10
- 25. Nie można przejść do stron w aplikacji Metro systemu Windows za pomocą C#
- 26. Usługa systemu Windows a aplikacja systemu Windows - najlepsza praktyka
- 27. Testowanie instalatorów systemu Windows
- 28. nazewnictwa stałe API systemu Windows w C#
- 29. Blokada systemu Windows Workstation programowo w C#
- 30. Jak kontrolować głośność multimediów?
Czy jest możliwe w Vista/Win7? – meir
W Vista i wyżej musisz użyć IAudioEndpointVolume. –