2017-10-06 9 views
0

Je ferai de mon mieux pour expliquer mon problème, mais je suis assez nouveau à tout cela. J'ai une application Windows Qt de bureau. Il ne peut y avoir qu'une seule instance de l'application en cours d'exécution. Ceci est assuré par MSDN mutex handle dans main.cpp. Maintenant, ce que j'essaie de faire est de rouvrir l'application en cours d'exécution si quelqu'un essaie d'ouvrir l'application. Par réouverture, je veux dire show() le MainWindow qui pourrait être caché (par la méthode hide()) à ce stade. Je ne sais pas vraiment comment cela peut être réalisé.Rouvrir une application de bureau Qt si une instance est déjà en cours d'exécution

+0

Tout d'abord, vous mixez Qt avec WinAPI. Essayez-vous de le faire en mode Qt-Way ou WinAPI? – jaskmar

+0

voir ceci: http://doc.qt.io/qt-5/qsystemtrayicon.html – eyllanesc

+0

@jaskmar bien ne pas avoir trop d'expérience, il est difficile pour moi de dire de quelle façon je veux le faire. Je ne sais pas comment le faire de toute façon ni si cela peut être réalisé dans les deux sens. J'imagine que trouver l'instance de l'application doit être fait par WinAPI, mais en montrant la fenêtre par Qt? – madasionka

Répondre

0

Extrayez QSystemSemaphore qui pourrait être accessible par plusieurs processus (instances de votre classe). Aussi cet article pourrait être utile: Inter-Process Communication in Qt.

Veuillez également noter que le mélange Qt avec WinAPI n'est pas une bonne idée quand ce n'est pas nécessaire.