Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Script PowerShell pour régler le volume du microphone à 100% toutes les 200ms
- # Charger les assemblies nécessaires
- Add-Type -TypeDefinition @'
- using System;
- using System.Runtime.InteropServices;
- public class AudioManager {
- [ComImport]
- [Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")]
- internal class MMDeviceEnumerator { }
- [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- internal interface IMMDeviceEnumerator {
- int NotImpl1();
- [PreserveSig]
- int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice ppDevice);
- }
- [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- internal interface IMMDevice {
- [PreserveSig]
- int Activate(Guid iid, int dwClsCtx, IntPtr pActivationParams, [MarshalAs(UnmanagedType.IUnknown)] out object ppInterface);
- }
- [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- public interface IAudioEndpointVolume {
- int NotImpl1();
- int NotImpl2();
- [PreserveSig]
- int GetChannelCount(out int pnChannelCount);
- [PreserveSig]
- int SetMasterVolumeLevel(float fLevelDB, Guid pguidEventContext);
- [PreserveSig]
- int SetMasterVolumeLevelScalar(float fLevel, Guid pguidEventContext);
- [PreserveSig]
- int GetMasterVolumeLevelScalar(out float pfLevel);
- }
- private static readonly Guid IID_IAudioEndpointVolume = new Guid("5CDF2C82-841E-4546-9722-0CF74078229A");
- public static IAudioEndpointVolume GetMicrophoneEndpointVolume() {
- // Créer une instance de MMDeviceEnumerator
- MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
- // Obtenir l'énumérateur d'interface
- IMMDeviceEnumerator deviceEnumerator = (IMMDeviceEnumerator)enumerator;
- // Obtenir le périphérique de capture audio par défaut (microphone)
- // 1 = eCapture (microphone), 0 = eRender (haut-parleurs)
- // 0 = eConsole (default device)
- IMMDevice device;
- deviceEnumerator.GetDefaultAudioEndpoint(1, 0, out device);
- // Activer l'interface IAudioEndpointVolume
- object o;
- device.Activate(IID_IAudioEndpointVolume, 0, IntPtr.Zero, out o);
- // Retourner l'interface
- return o as IAudioEndpointVolume;
- }
- public static void SetMicrophoneVolume(float volume) {
- IAudioEndpointVolume volumeControl = GetMicrophoneEndpointVolume();
- // Définir le volume sur la valeur spécifiée (0.0 à 1.0)
- Guid guid = Guid.Empty;
- volumeControl.SetMasterVolumeLevelScalar(volume, guid);
- }
- }
- '@
- Write-Host "Démarrage du script de contrôle du volume du microphone..."
- Write-Host "Le microphone sera maintenu à 100% de volume. Appuyez sur Ctrl+C pour arrêter."
- try {
- while ($true) {
- # Régler le volume du microphone à 100% (1.0)
- [AudioManager]::SetMicrophoneVolume(1.0)
- # Attendre 200ms
- Start-Sleep -Milliseconds 200
- }
- }
- catch {
- Write-Host "Script interrompu : $_"
- }
- finally {
- Write-Host "Script arrêté."
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement