web-dev-qa-db-fra.com

Comment contrôlez-vous le moniteur sur lequel votre application s'ouvre?

En tant qu'utilisateur travaillant sur deux moniteurs, j'ai remarqué que les applications se comportaient différemment en fonction du moniteur sur lequel elles s'ouvraient (moniteur principal ou secondaire, dernier moniteur sur lequel l'application était ouverte, etc.). Pour être honnête, certaines applications me dérangent parce que je veux qu’elles s’ouvrent sur mon moniteur principal et je les déplace vers mon secondaire si je le souhaite. Cependant, ces applications sont terminées et hors de mon contrôle, je souhaite donc poser des questions sur mes propres applications pouvant être exécutées par des personnes utilisant deux moniteurs.

Quels types de contrôles sont disponibles pour permettre aux utilisateurs de spécifier le moniteur sur lequel votre application est ouverte, de permettre à une application de "se souvenir" du moniteur sur lequel elle était lors de la fermeture et de la réouverture, et de forcer l'application à démarrer sur un moniteur spécifique ?

Je recherche des solutions pour tous les systèmes d'exploitation et tous les langages de programmation, même si je suppose que différents systèmes d'exploitation et langages auront des contrôles différents.

Questions connexes

22
Thomas Owens

En tant que programmeur Windows, je contrôle le moniteur de démarrage des fenêtres créées par mes applications par A. stocker la dernière position de mes applications dans la base de registre et la restaurer, et b. manquant d'informations stockées, définissant la position de départ sur les valeurs d'indicateur magique que Windows utilise pour positionner l'application à l'aide de sa logique par défaut. La logique par défaut change de système d’exploitation à un autre, car MS améliore l'expérience utilisateur, mais tend à garantir que l'application s'ouvrira quel que soit le moniteur que l'utilisateur est le plus susceptible de regarder.

En tant qu'utilisateur disposant d'un système Windows XP/Vista multi-écrans, j'utiliserais le gestionnaire de bureau nVidia, qui permet de définir les positions de départ des applications, sinon le comportement ne convient pas.

9
Chris Becke

Une chose à considérer est que la configuration du moniteur peut avoir changé entre les appels de l'application (par exemple, s'exécutant sur un ordinateur portable pouvant parfois être ancré et utilisant un moniteur externe). Assurez-vous que votre application est placée dans la plage visible.

En ce qui concerne les API, il existe la classe System.Windows.Forms.Screen qui vous donne certaines de ces informations.

2
Philipp Schmid

Du point de vue des gestionnaires de fenêtres Unix et Linux traditionnels, vous ne contrôlez pas. Le gestionnaire de fenêtres gère le positionnement de la fenêtre.

Vous pourrez peut-être donner des indications au gestionnaire de fenêtres, mais il devrait être possible de configurer le gestionnaire de fenêtres pour ignorer de telles choses. Déplacer ou placer la fenêtre du programme peut facilement causer des problèmes lorsqu'un grand bureau virtuel est utilisé.

Voir: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html

2
iny

Dans KDE 4.13.3 (vous pouvez faire cela avec certains anciens et nouveaux utilisateurs (la traduction peut être inexacte - j'utilise la version polonaise):

  1. lancer le programme souhaité
  2. clic droit sur sa barre de titre
  3. choisissez "plus d'actions" -> "paramètres de fenêtre supplémentaires ..." (encore plus d'options sont sous "paramètres de programme supplémentaires ...")
  4. allez à l'onglet "taille et mise en page"
  5. Cochez la case "Écran" et choisissez "Forcer" et choisissez le numéro d'écran. La fenêtre de ce programme sera toujours ouverte sur cet écran.
0
keypress