Advertisement
Guest User

Microphone always max volume script

a guest
Mar 30th, 2025
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. # Script PowerShell pour régler le volume du microphone à 100% toutes les 200ms
  2.  
  3. # Charger les assemblies nécessaires
  4. Add-Type -TypeDefinition @'
  5. using System;
  6. using System.Runtime.InteropServices;
  7.  
  8. public class AudioManager {
  9. [ComImport]
  10. [Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")]
  11. internal class MMDeviceEnumerator { }
  12.  
  13. [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  14. internal interface IMMDeviceEnumerator {
  15. int NotImpl1();
  16.  
  17. [PreserveSig]
  18. int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice ppDevice);
  19. }
  20.  
  21. [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  22. internal interface IMMDevice {
  23. [PreserveSig]
  24. int Activate(Guid iid, int dwClsCtx, IntPtr pActivationParams, [MarshalAs(UnmanagedType.IUnknown)] out object ppInterface);
  25. }
  26.  
  27. [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  28. public interface IAudioEndpointVolume {
  29. int NotImpl1();
  30. int NotImpl2();
  31.  
  32. [PreserveSig]
  33. int GetChannelCount(out int pnChannelCount);
  34.  
  35. [PreserveSig]
  36. int SetMasterVolumeLevel(float fLevelDB, Guid pguidEventContext);
  37.  
  38. [PreserveSig]
  39. int SetMasterVolumeLevelScalar(float fLevel, Guid pguidEventContext);
  40.  
  41. [PreserveSig]
  42. int GetMasterVolumeLevelScalar(out float pfLevel);
  43. }
  44.  
  45. private static readonly Guid IID_IAudioEndpointVolume = new Guid("5CDF2C82-841E-4546-9722-0CF74078229A");
  46.  
  47. public static IAudioEndpointVolume GetMicrophoneEndpointVolume() {
  48. // Créer une instance de MMDeviceEnumerator
  49. MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
  50.  
  51. // Obtenir l'énumérateur d'interface
  52. IMMDeviceEnumerator deviceEnumerator = (IMMDeviceEnumerator)enumerator;
  53.  
  54. // Obtenir le périphérique de capture audio par défaut (microphone)
  55. // 1 = eCapture (microphone), 0 = eRender (haut-parleurs)
  56. // 0 = eConsole (default device)
  57. IMMDevice device;
  58. deviceEnumerator.GetDefaultAudioEndpoint(1, 0, out device);
  59.  
  60. // Activer l'interface IAudioEndpointVolume
  61. object o;
  62. device.Activate(IID_IAudioEndpointVolume, 0, IntPtr.Zero, out o);
  63.  
  64. // Retourner l'interface
  65. return o as IAudioEndpointVolume;
  66. }
  67.  
  68. public static void SetMicrophoneVolume(float volume) {
  69. IAudioEndpointVolume volumeControl = GetMicrophoneEndpointVolume();
  70.  
  71. // Définir le volume sur la valeur spécifiée (0.0 à 1.0)
  72. Guid guid = Guid.Empty;
  73. volumeControl.SetMasterVolumeLevelScalar(volume, guid);
  74. }
  75. }
  76. '@
  77.  
  78. Write-Host "Démarrage du script de contrôle du volume du microphone..."
  79. Write-Host "Le microphone sera maintenu à 100% de volume. Appuyez sur Ctrl+C pour arrêter."
  80.  
  81. try {
  82. while ($true) {
  83. # Régler le volume du microphone à 100% (1.0)
  84. [AudioManager]::SetMicrophoneVolume(1.0)
  85.  
  86. # Attendre 200ms
  87. Start-Sleep -Milliseconds 200
  88. }
  89. }
  90. catch {
  91. Write-Host "Script interrompu : $_"
  92. }
  93. finally {
  94. Write-Host "Script arrêté."
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement