[Tutoriel] Créer un Custom Boot Sound
Posté : dim. 22 mars 2026 09:51
Salut à tous !
Voici un petit tuto pour celles et ceux qui souhaitent changer le son de démarrage de leur PC par un son personnalisé !
Commencez par récupérer ou créer votre son en .wav (de 5 à 10 secondes c'est l'idéal)
1. Créer un dossier "BootSound" à la racine de votre disque C:
2. Dans ce dossier, créer 2 fichiers (avec un éditeur de texte, j'utilise notepad++) :
- play_theme.ps1
- run_hidden.vbs
play_theme.ps1 :
En fonction du nom de votre fichier .wav il faut modifier une ligne de code :
Il faut donc changer le nom du fichier .wav ici
Le code est fait pour qu'au boot le son soit lancé à 10% du volume général.
Ensuite le volume général retrouve sa valeur précédente (celle avant l'extinction du PC)
Pour changer le % du volume lors de la lecture du son il faut modifier cette ligne :
(0.10 = 10%)
run_hidden.vbs :
sur celui-ci il n'y a rien à modifier
3. Lancer le planificateur de tâches
Créer une tâche :
Onglet Général > Nom > donner un nom à la tâche
Onglet Général > "Utiliser le compte d'utilisateur suivant ....." sélectionner l'utilisateur actuel (ton compte)
Onglet Général > Cocher "Exécuter avec les autorisations maximales"

Onglet Déclencheurs > Nouveau > Lancer la tâche à l'ouverture de session

Onglet Actions > Nouveau > Action : Démarrer un programme
Onglet Actions > Programme/script > wscript.exe
Onglet Actions > Ajouter des arguments : "C:\BootSound\run_hidden.vbs"
Onglet Actions > Commencer dans : C:\BootSound

Onglet Conditions > Décoche tout

Onglet Paramètres > Cocher "Autoriser l'exécution de la tâche à la demande"
Onglet Paramètres > Cocher "Si la tâche en cours ne se termine pas, forcez son arrêt"
et décochez tout le reste.

Ne pas oublier d'aller dans les sons Windows et de décocher "Jouer le son de démarrage de Windows" pour éviter que Windows joue en même temps le son du boot d'origine

Voilà il ne vous reste plus qu'a essayer
Voici un petit tuto pour celles et ceux qui souhaitent changer le son de démarrage de leur PC par un son personnalisé !
Commencez par récupérer ou créer votre son en .wav (de 5 à 10 secondes c'est l'idéal)
1. Créer un dossier "BootSound" à la racine de votre disque C:
2. Dans ce dossier, créer 2 fichiers (avec un éditeur de texte, j'utilise notepad++) :
- play_theme.ps1
- run_hidden.vbs
play_theme.ps1 :
Code : Tout sélectionner
$ErrorActionPreference = "Stop"
$player = New-Object Media.SoundPlayer "C:\BootSound\stranger_theme.wav"
$player.Load()
$deadline = (Get-Date).AddSeconds(30)
do {
$svc = Get-Service -Name "AudioSrv" -ErrorAction SilentlyContinue
Start-Sleep -Milliseconds 50
} until (($svc -and $svc.Status -eq "Running") -or (Get-Date) -gt $deadline)
Start-Sleep -Milliseconds 250
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
namespace CoreAudioUSB2 {
[ComImport]
[Guid("5CDF2C82-841E-4546-9722-0CF74078229A")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IAudioEndpointVolume {
int RegisterControlChangeNotify(IntPtr pNotify);
int UnregisterControlChangeNotify(IntPtr pNotify);
int GetChannelCount(out uint pnChannelCount);
int SetMasterVolumeLevel(float fLevelDB, ref Guid pguidEventContext);
int SetMasterVolumeLevelScalar(float fLevel, ref Guid pguidEventContext);
int GetMasterVolumeLevel(out float pfLevelDB);
int GetMasterVolumeLevelScalar(out float pfLevel);
int SetChannelVolumeLevel(uint nChannel, float fLevelDB, ref Guid pguidEventContext);
int SetChannelVolumeLevelScalar(uint nChannel, float fLevel, ref Guid pguidEventContext);
int GetChannelVolumeLevel(uint nChannel, out float pfLevelDB);
int GetChannelVolumeLevelScalar(uint nChannel, out float pfLevel);
int SetMute([MarshalAs(UnmanagedType.Bool)] bool bMute, ref Guid pguidEventContext);
int GetMute(out bool pbMute);
int GetVolumeStepInfo(out uint pnStep, out uint pnStepCount);
int VolumeStepUp(ref Guid pguidEventContext);
int VolumeStepDown(ref Guid pguidEventContext);
int QueryHardwareSupport(out uint pdwHardwareSupportMask);
int GetVolumeRange(out float pflVolumeMindB, out float pflVolumeMaxdB, out float pflVolumeIncrementdB);
}
[ComImport]
[Guid("A95664D2-9614-4F35-A746-DE8DB63617E6")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IMMDeviceEnumerator {
int NotImpl1();
int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice dev);
}
[ComImport]
[Guid("D666063F-1587-4E43-81F1-B948E807363F")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IMMDevice {
int Activate(ref Guid iid, int clsctx, IntPtr act, [MarshalAs(UnmanagedType.Interface)] out object obj);
}
public static class VolumeCtl {
static IAudioEndpointVolume GetVol(int role) {
var t = Type.GetTypeFromCLSID(new Guid("BCDE0395-E52F-467C-8E3D-C4579291692E"));
var e = (IMMDeviceEnumerator)Activator.CreateInstance(t);
IMMDevice d; e.GetDefaultAudioEndpoint(0, role, out d); // eRender
object o;
Guid iid = typeof(IAudioEndpointVolume).GUID;
d.Activate(ref iid, 23, IntPtr.Zero, out o); // CLSCTX_ALL=23
return (IAudioEndpointVolume)o;
}
public static float Get(int role) {
float v;
GetVol(role).GetMasterVolumeLevelScalar(out v);
return v;
}
public static void Set(int role, float v) {
if (v < 0f) v = 0f;
if (v > 1f) v = 1f;
Guid g = Guid.Empty;
GetVol(role).SetMasterVolumeLevelScalar(v, ref g);
}
public static void SetAll(float v) { Set(0,v); Set(1,v); Set(2,v); }
}
}
"@
$old0 = [CoreAudioUSB2.VolumeCtl]::Get(0)
$old1 = [CoreAudioUSB2.VolumeCtl]::Get(1)
$old2 = [CoreAudioUSB2.VolumeCtl]::Get(2)
$target = 0.10
[CoreAudioUSB2.VolumeCtl]::SetAll($target)
Start-Sleep -Milliseconds 200
$player.PlaySync()
[CoreAudioUSB2.VolumeCtl]::Set(0, $old0)
[CoreAudioUSB2.VolumeCtl]::Set(1, $old1)
[CoreAudioUSB2.VolumeCtl]::Set(2, $old2)
Code : Tout sélectionner
$player = New-Object Media.SoundPlayer "C:\BootSound\stranger_theme.wav"Il faut donc changer le nom du fichier .wav ici
Le code est fait pour qu'au boot le son soit lancé à 10% du volume général.
Ensuite le volume général retrouve sa valeur précédente (celle avant l'extinction du PC)
Pour changer le % du volume lors de la lecture du son il faut modifier cette ligne :
Code : Tout sélectionner
$target = 0.10(0.10 = 10%)
run_hidden.vbs :
Code : Tout sélectionner
CreateObject("WScript.Shell").Run "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -File ""C:\BootSound\play_theme.ps1""", 03. Lancer le planificateur de tâches
Créer une tâche :
Onglet Général > Nom > donner un nom à la tâche
Onglet Général > "Utiliser le compte d'utilisateur suivant ....." sélectionner l'utilisateur actuel (ton compte)
Onglet Général > Cocher "Exécuter avec les autorisations maximales"

Onglet Déclencheurs > Nouveau > Lancer la tâche à l'ouverture de session

Onglet Actions > Nouveau > Action : Démarrer un programme
Onglet Actions > Programme/script > wscript.exe
Onglet Actions > Ajouter des arguments : "C:\BootSound\run_hidden.vbs"
Onglet Actions > Commencer dans : C:\BootSound

Onglet Conditions > Décoche tout

Onglet Paramètres > Cocher "Autoriser l'exécution de la tâche à la demande"
Onglet Paramètres > Cocher "Si la tâche en cours ne se termine pas, forcez son arrêt"
et décochez tout le reste.

Ne pas oublier d'aller dans les sons Windows et de décocher "Jouer le son de démarrage de Windows" pour éviter que Windows joue en même temps le son du boot d'origine

Voilà il ne vous reste plus qu'a essayer