Bonjour,

Sous Window7, par programmation perso (pas d'outils 'miracle' qui trainent sur le net), je voudrais rendre visible/invisible une icône de la barre des tâches en fonction de créneaux horaires.
Soit :
1 - En Ajoutant/supprimant l'icône concernée (Thunderbird)
2 - Basculer entre deux barres des tâches, l'une contenant l'icône l'autre non
3 - Une autre idée si vous avez...

Actuellement pour d'autres besoins je manipule les icônes du bureau, ainsi que la barre des tâches sans problème en utilisant les API par l'intermédiaire d'un programme Perl.
Pour une idée, voici ce que ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Win32::API;

$Win32::API::DEBUG = 0;

#
# ATTENTION le lancement du script tel quel efface toutes les icônes du bureau ansi que la barre des tâches
# Il est alors IMPOSSIBLE de lancer quoi que ce soit !
#
# RAPPEL la touche WINDOWS du clavier permet de développer le menu Démarrer à partir duquel on peut lancer
# une INVITE DE COMMANDE qui permettra le réaffichage de toutes les icônes :
# perl BarAff.pl
#
# Le mieux, avant de lancer le script, est d'ouvrir une INVITE DE COMMANDE...
#

# Paramètres de la barre des tâches (Taskbar)
my $lpBarClass = "";
my $lpBarName  = "Shell_traywnd";

# Paramètres du bureau (Desktop)
my $lpWndName  = "ProgMan";
my $lpWndClass = "Program Manager";

# Création des structures permettant d'accéder aux API
my $GetDesktopWindow = new Win32::API('user32', 'GetDesktopWindow','','I');
my $FindWindowEx = new Win32::API('user32', 'FindWindowEx','IIPP','I');
my $ShowWindow   = new Win32::API('user32', 'ShowWindow','II','I');

# Efface la barre des taches sauf le bouton du menu Démarrer
my $hbar = $FindWindowEx->Call( 0, 0, $lpBarName, $lpBarClass );
my $Eventbar = $ShowWindow->Call( $hbar, 0);

# Efface les icônes du bureau
my $hwnd = $FindWindowEx->Call( 0, 0, $lpWndName, $lpWndClass );
my $Eventwnd = $ShowWindow->Call( $hwnd, 0);

# Efface le bouton du menu Démmarer lorsque la barre des tâches est déjà effacée
my $hdsk = $GetDesktopWindow->Call();
my $hbtn = $FindWindowEx->Call($hdsk, 0,  'button', 0);
my $Eventbtn = $ShowWindow->Call($hbtn, 0);

exit (0);
J'aimerai bien rester dans ce contexte, d'où ma question :
Est-il possible de manipuler une icône de la barre des tâches par l'intermédiaire des API Windows ?

D'avance merci pour vos suggestions !