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

IHM Discussion :

créer une pop-up au premier plan sur bureau [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    apprenti ingénieur en informatique et réseaux
    Inscrit en
    Octobre 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : apprenti ingénieur en informatique et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 71
    Points : 73
    Points
    73
    Par défaut créer une pop-up au premier plan sur bureau
    Salut!

    Dans le cadre de mon outil pour le travaille, il y a des traitements plutôt long (5-7 minutes) et donc l'utilisateur change de fenêtre lors de l'exécution de tous les calcul. Je cherche un moyen de lui montrer que le traitement est fini. Pour cela j'ai mis un son à la fin du traitement, mais les gars au boulot ne mettent pas forcément le son sur les PC donc j'aimerais avoir une pop-up toute simple qui apparaît au premier plan mais pas seulement sous Access, je veux qu'elle apparaisse même si l'on est sur le bureau ou internet explorer.

    J'ai testé les message box toute simple biensur, mais elle ne sortent pas d'access...

    MERCI

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut Envoi d'un Pop-up lorsque on n'est pas directement sur la base de données
    Personnellement, j'ai mis en place une petite "bidouille" qui consiste lorsque l'événement est terminé (dans ton cas qand le traitement est fini) de lancer une macro qui ouvre une table où j'ai préalablement enregistré un lien hypertexte qui renvoit sur ma base de données Access. Puis, je sélectionne cet objet (le lien hypertexte), j'exécute une commande (OuvrirLienHypertexte), ce qui a pour conséquence de faire revenir à l'écran ta base données Access.
    A l'issue, un simple "message box" te permet delancer un pop-up.

    Ce n'est pas très rationnel mais cela fonctionne....

    Bon courage !

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 835
    Points : 14 937
    Points
    14 937
    Par défaut
    Bonjour,
    après quelques recherches, j'ai trouvé qu'il était possible d'envoyer un message sur le bureau via vbscript qui est normalement natif dans Windows depuis 98.
    Dans un éditeur de texte, il faut d'abord créer un script contenant le message à envoyer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox "Ton texte de fin de traitement",vbExclamation,"Application Access"
    Le premier paramètre est le texte du message, le second, le type de bouton (vbOKOnly par défaut) et l'icône à afficher, le troisième est le titre de la fenêtre du message.
    Ensuite, il faut enregistrer le script avec l'extension .vbs (EnvoiMsg.vbs sur C: par exemple) puis, dans ta base Access créer une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function EnvoiPopupMessage()
     
    Dim oShell As Object
    Dim stScript As String
     
    Set oShell = CreateObject("Wscript.Shell")
    stScript = "C:\EnvoiMsg.vbs"
    oShell.Run (stScript)
     
    End Function
    Il ne reste plus qu'à appeler cette fonction à la fin de ton traitement.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    A priori, une autre solution ici.

    Philippe

  5. #5
    Membre régulier
    Homme Profil pro
    apprenti ingénieur en informatique et réseaux
    Inscrit en
    Octobre 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : apprenti ingénieur en informatique et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 71
    Points : 73
    Points
    73
    Par défaut
    Bonjour,
    Merci de l'attention que vous avez porté au problème^^'

    j'ai trouvé une autre solution:

    1) création d'un module PremierPlanFenetre:
    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
    Option Compare Database
     
    Private 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
    Private Const HWND_TOPMOST = -1
    Private Const SWP_NOSIZE = &H1
    Private Const SWP_NOMOVE = &H2
     
        ' Permet de placer un formulaire au-dessus de toutes les fenêtres de Windows
        ' Déclarer nécessairement ce formulaire indépendant
    Public Sub TopMost(ByVal lhandleWindow As Long)
       Call SetWindowPos(lhandleWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
    End Sub


    2) puis dans le code du formulaire dans lequel j'effectue le traitement:

    dans les options:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
    Option Explicit
    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal _
        lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
    3) enfin appeler le module après la macro concerné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TopMost Me.Form.hwnd
    MsgBox "traitement terminé!", vbSystemModal, "Calcul Distance"
    Const SND_ASYNC = &H1
     
    PlaySound "D:\User\sons\Ding.WAV", 0, 0
    voila j'espère avoir été clair ^^

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre une fenêtre popup au premier plan quand on clique sur le lien
    Par metabaron81 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/03/2011, 16h58
  2. fermer une animation flash de premier plan sur une page web
    Par ledisciple dans le forum ActionScript 3
    Réponses: 8
    Dernier message: 23/05/2009, 10h41
  3. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 12h30
  4. Premier plan sur un dialog
    Par |PaRa-BoL dans le forum MFC
    Réponses: 5
    Dernier message: 04/03/2004, 12h52
  5. forcer une fenetre à etre au premier plan jusqu'a ...
    Par peppena dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/12/2003, 16h14

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