Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 11h36   #1
Membre habitué
 
Homme Georges HAROT
Inscription : août 2003
Messages : 122
Détails du profil
Informations personnelles :
Nom : Homme Georges HAROT
Âge : 53
Localisation : Belgique

Informations forums :
Inscription : août 2003
Messages : 122
Points : 104
Points : 104
Envoyer un message via MSN à Geache
Par défaut Comment masquer - Rétablir barre des tâches ?

Bonjour,

La semaine dernière, j'ai trouvé mon bonheur dans la FAQ et le forum pour faire clignoter une icône dans le Systray de l'écran lorsque ACCESS est en background par rapport à une autre application.

Ca fonctionne parfaitement mais si l'utilisateur a demandé le masquage automatique de sa barre des tâches, lorsque celle-ci est masquée, mon clignotement ne sert à rien du tout.

Je cherche maintenant comment je pourrais faire pour forcer l'affichage de la barre des tâches tant que mon clignotement est actif.

L'un d'entre-vous peut il me mettre sur une piste, svp ?

Merci d'avance,

Geache
Geache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 11h45   #2
Membre habitué
 
Homme Georges HAROT
Inscription : août 2003
Messages : 122
Détails du profil
Informations personnelles :
Nom : Homme Georges HAROT
Âge : 53
Localisation : Belgique

Informations forums :
Inscription : août 2003
Messages : 122
Points : 104
Points : 104
Envoyer un message via MSN à Geache
Bonjour,

Suffisait que je poste un nouveau fil de discussion pour trouver un autre post qui en parlait... J'ai trouvé ceci :

Code :
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
Fonction FindWindow
 
Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
 
Description :
Cette fonction permet de rechercher une fenêtre. Elle ne fonctionne que sur les fenêtres principales (pas les filles des MDI).
lpClassName est le nom de la classe qui identifie la fenêtre (rarement connu et donc souvent égal à une chaîne vide).
lpWindowName est le titre (complet) de la fenêtre.
La fonctionne retourne alors le handle de la fenêtre, en cas d'échec, elle renvoie 0.
 
Exemple d'utilisation :
 
' Exemple proposé par Ket Ans (ket_ans@hotmail.com)
 
Public Function GetTaskbarHWND() As Long
GetTaskbarHWND = FindWindow("shell_traywnd", "")
End Function
 
' On peut ensuite utiliser ce handle pour cacher ou
' afficher la barre des tâches
 
Public Sub HideTaskbar()
' Cacher la barre des tâches
Dim hWin As Long
hWin = GetTaskbarHWND()
SetWindowPos hWin, 0, 0, 0, 0, 0, &H80
End Sub
 
Public Sub ShowTaskbar()
' Afficher la barre des tâches
Dim hWin As Long
hWin = GetTaskbarHWND()
SetWindowPos hWin, 0, 0, 0, 0, 0, &H40
End Sub
Je vais le tester.

Je reviens vous dire si cela solutionne mon problème.
Geache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 12h02   #3
Membre habitué
 
Homme Georges HAROT
Inscription : août 2003
Messages : 122
Détails du profil
Informations personnelles :
Nom : Homme Georges HAROT
Âge : 53
Localisation : Belgique

Informations forums :
Inscription : août 2003
Messages : 122
Points : 104
Points : 104
Envoyer un message via MSN à Geache
Première constatation, il manque une déclaration de fonction pour que le module fonctionne :

Code :
1
2
3
4
5
6
7
8
Declare Function SetWindowPos Lib "user32" ( _
                 ByVal hwnd As Long, _
                 ByVal hWndInsertAfter As Long, _
                 ByVal x As Long, _
                 ByVal y As Long, _
                 ByVal cx As Long, _
                 ByVal cy As Long, _
                 ByVal wFlags As Long) As Long
Ca permet bien d'afficher ou masquer la barre des tâches, mais pas de garder le paramètre de masquage activé ou non activé.
Geache est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 12h02   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 224
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 224
Points : 9 927
Points : 9 927
Envoyer un message via Skype™ à Domi2
Bonjour,

Une autre solution, peut-être pas vraiment applicable dans ton cas, serait de forcer l'affichage au lancement de l'application :

Code :
Application.SetOption "Show Status Bar", True
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 12h25   #5
Membre habitué
 
Homme Georges HAROT
Inscription : août 2003
Messages : 122
Détails du profil
Informations personnelles :
Nom : Homme Georges HAROT
Âge : 53
Localisation : Belgique

Informations forums :
Inscription : août 2003
Messages : 122
Points : 104
Points : 104
Envoyer un message via MSN à Geache
Non, je ne peux pas appliquer cela. Je résume mon problème :

Mon application tourne toujours en tâche de fond par rapport à une autre application.
Quand un événement survient dans mon application, je dois attirer l'attention de l'utilisateur pour qu'il effectue une action. D'où le clignotement dans le systray.

Mais je n'ai pas le droit de figer sa barre de tâches plus longtemps que le temps d'attirer son attention.

Et mon application étant de moindre importance par rapport à celle que l'utilisateur utilise en foreground, je ne peux pas imposer à l'utilisateur de figer sa barre des tâches.

Donc je dois trouver un truc pour ne la figer que le temps qu'il s'aperçoive que l'icône clignote dans le systray.

Je retiens quand même l'idée pour un autre cas de figure éventuel.

Merci Domi2

Edit : Je viens d'essayer ton option, en la plaçant en début d'event, quand survient l'événement qui doit déclencher le clignotement, en me disant que je pourrais toujours inverser l'opération quand l'utilisateur a réagit. Mais cette rontudju de barre des tâches se masque à nouveau automatiquement et mon problème n'est toujours pas résolu.
Geache est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h29.


 
 
 
 
Partenaires

Hébergement Web