IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Comment masquer - Rétablir barre des tâches ?


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Points : 173
    Points
    173
    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

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Points : 173
    Points
    173
    Par défaut
    Bonjour,

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

    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
    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.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Points : 173
    Points
    173
    Par défaut
    Première constatation, il manque une déclaration de fonction pour que le module fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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é.

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.SetOption "Show Status Bar", True
    Domi2

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 185
    Points : 173
    Points
    173
    Par défaut
    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.

Discussions similaires

  1. Masquer l'application dans la barre des tâches
    Par jmjmjm dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/11/2016, 12h50
  2. Masquer la barre des tâches en VBScript
    Par sknonks31 dans le forum VBScript
    Réponses: 2
    Dernier message: 19/12/2010, 11h50
  3. Masquer la barre des tâches
    Par patte d'ours dans le forum VB.NET
    Réponses: 7
    Dernier message: 09/11/2010, 22h54
  4. Comment masquer le MessageBox de la barre des tâches ?
    Par Coussati dans le forum Langage
    Réponses: 7
    Dernier message: 25/08/2003, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo