Bonjour tout le monde,
Une tour doit être défragmentée à chaque session. Comme les sessions sont très courtes, j'ai jusque là évité la défragmentation automatique.
J'ai posé la question là, du côté utilisation :
https://www.developpez.net/forums/d1.../#post11040456
Le concept que je propose est que lorsqu'on presse la touche pour mettre en veille la machine, l'exécution de cette mise en veille soit différée jusqu'à la fin de la défragmentation.
ça suppose probablement le choix d'un autre logiciel de défragmentation. Comme le choix n'est pas encore arrêté, on peut dire que pour temporiser la mise en veille on surveillera la présence d'une fenêtre, correspondant au logiciel de défragmentation. Une fois le choix arrêté ce sera à peaufiner, pour tenir compte de l'UAC.
La mise en œuvre peut se faire en C# ou si c'est mieux avec Powershell (Visual Studio accepte d'autres langages, mais je serai moins rapide dessus).
Comme j'ai dit dans l'autre fil je fais une boucle pour réagir à l'aide de Win32_PowerManagementEvent aux changements d'état de la machine (mise en veille, sortie de veille ...). Est-ce que c'est une bonne idée de me reposer là-dessus pour détecter l'action de la touche de mise en veille ?
Une mise en œuvre possible : à la sortie de veille, j'utilise un programme C# pour afficher un message, pour demander à l'utilisatrice de ne pas oublier de défragmenter. Si ce programme arrive à détecter l'action de la touche de mise en veille et à la différer, alors je peux lui demander de défragmenter le disque à l'aide des API dédiées, et une fois que c'est fini se terminer après avoir déclenché la mise en veille.
Partager