J'ai une configuration à deux moniteurs et j'ai récemment joué avec les paramètres de positionnement. Certaines de mes applications à fenêtre unique préfèrent conserver l'emplacement de leur dernière fermeture et ouvrir plus tard la même position. Malheureusement, cela les place maintenant hors de la zone visible de mes écrans!
Existe-t-il un moyen de forcer une fenêtre particulière dans la zone visible?
J'utilise cette approche:
Si vous utilisez une version non anglaise de Windows, les choix de menu "R" et "M" seront probablement différents.
Sous Windows 10, pour utiliser l’ancien déplacement de la fenêtre à l’aide des touches de curseur, vous devez disposer du Shift touche enfoncée lorsque vous ouvrez le menu contextuel à partir de la barre des tâches.
Informations de How To Geek
Vous pouvez cliquer avec le bouton droit sur le bouton du programme dans la barre des tâches, puis cliquer sur "Déplacer". Vous pouvez maintenant utiliser les flèches de votre clavier pour déplacer la fenêtre dans laquelle vous pouvez la voir. Quelques manipulations sont nécessaires, parfois les fenêtres se "coincent" sur les bords du moniteur. Vous pouvez aussi essayer d’utiliser la souris, mais le clavier est un peu plus fiable si vous ne pouvez pas voir la fenêtre pour le moment ;-)
Avant la barre des tâches, je réglais ce problème avec Alt+Space pour faire apparaître le menu de la fenêtre, puis M pour la fonction Move. Les touches fléchées vous permettraient alors de revenir à l'écran de la fenêtre.
Un autre moyen rapide consiste à cliquer avec le bouton de la souris sur la barre des tâches et à sélectionner Cascade Windows.
Edit: Discontinued selon les commentaires
Pour résoudre rapidement ce problème et pour positionner les applications sur le double écran, je peux recommander Winsplit Revolution . La résolution de ce problème revient à appuyer simplement sur Ctrl-Alt et sur une touche numérique pour remettre la fenêtre exactement à l'endroit souhaité.
J'ai rencontré ce problème et absolument rien ne fonctionnait pour moi. Je suis donc allé dans le Gestionnaire des tâches et j'ai cliqué avec le bouton droit sur le programme qui était hors écran. Basculer vers n'a pas fonctionné, ni mis à l'avant. À noter, il s’agissait d’une fenêtre statique, l’agrandissement n’était donc pas disponible via la barre des tâches. Mais vous pouvez maximiser via le gestionnaire de tâches, et cela l'amène à votre écran principal! De là, vous pouvez faire ce que vous voulez avec la fenêtre. :)
Je viens de rencontrer ce problème avec l'interface graphique Git sous Windows 7, qui est basée sur Tk et, en tant que telle, a tendance à disparaître de façon étrange par moments sous Windows. J'ai essayé de frapper Alt-Space et d'utiliser la commande move pour le ramener à la vue, mais cela semblait bloqué. Le maximiser le ramènerait, mais si je le remettais en mode fenêtré, cela disparaîtrait à nouveau.
Ce que j’ai fait, c’est de l’agrandir, de saisir la barre de titre et de la faire glisser sur le côté de l’écran de sorte qu’Aero Snap l’ait dimensionnée à la moitié de la taille de l’écran et placée en mode fenêtré. Après cela, je l'ai écarté du côté de l'écran et en ai repris le contrôle.
J'utilise un petit outil astucieux appelé Shove-it qui vérifie simplement si une fenêtre se trouve en dehors de l'écran Edge et la replace à nouveau sur l'écran. C'est un logiciel ancien (et la page d'accueil le prouve) mais fonctionne sur toutes les versions de Windows.
Pour ceux qui connaissent PowerShell, essayez ceci:
Si la fenêtre est une fenêtre principale, elle sera déplacée vers le coin supérieur gauche de l'écran.
Si la fenêtre est une fenêtre enfant d'un autre programme, son coin supérieur gauche sera aligné sur le coin supérieur gauche de sa fenêtre mère.
Add-Type @"
using System;
using System.Runtime.InteropServices;
// https://msdn.Microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
public struct RECT
{
public long left;
public long top;
public long right;
public long bottom;
}
public class User32WinApi
{
// https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
/*
Gets the handle of the in-focus window
NB: In some scenarios this can be NULL; so code needed to handle such an event
*/
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
// https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
/*
top & left are always 0 (i.e. since the rectangle is relative to the window itself)
bottom & right equal the windows hieght and width, respectively.
*/
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
// https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
}
"@
$repaint = $true
$windowSize = New-Object RECT
"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
"Window moved successfully (hope you agree!)"
} else {
Write-Warning "Failed to move the active window"
}
} else {
Write-Warning "Failed to get size of the active window"
}
} else {
Write-Warning "No active window found"
}
Code original ici: https://Gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/
Vous pouvez utiliser NIRSOFT WinLister. J'ai remarqué que la méthode "Déplacer" n'était pas disponible sous Windows 7 lorsque vous utilisiez le thème classique. Diverses autres méthodes ont échoué. Je publie donc mon alternative "SI tout le reste échoue".
Téléchargez l'application WinLister ici .
Exécutez WinLister en tant qu’administrateur et sélectionnez la fenêtre que vous souhaitez revenir à l’écran. Ne pas exécuter en tant qu'administrateur ne donnera pas à l'application la possibilité de déplacer les fenêtres pour vous.
Faites un clic droit et sélectionnez «Centrer les fenêtres sélectionnées» et vous avez terminé!
Captures d'écran ici .
Dans certains cas, même si vous avez plusieurs écrans sur le site distant, vous n’y avez peut-être pas accès depuis votre site. Les raccourcis clavier ne fonctionneront pas car vous n’avez plus accès à aucune vue qui ne figure pas à l’écran.
Dans ce cas, si vous pouvez ouvrir des instances supplémentaires de l'application, faites-le. Les premières occurrences apparaîtront presque certainement dans la barre des tâches sous forme de fenêtres fantômes supplémentaires. Continuez comme ça. Ils finiront par peupler la vue principale. Utilisez ensuite l’icône de la barre des tâches pour cliquer avec le bouton droit de la souris et fermer les instances hors écran. Une fois qu’AUCUNE instance hors écran n’a été ouverte, fermez celles de l’écran principal. La prochaine fois que vous ouvrirez cette application, celle-ci apparaîtra sur l'écran principal et non "hors caméra".
Sélectionnez la fenêtre (par exemple, en utilisant Alt+Tab). Puis maintenez Alt+F7 et déplacez la fenêtre avec les touches fléchées. Terminé.
Parfois, il est difficile de savoir aveuglément où se trouve la fenêtre cachée (et donc comment la déplacer vers l'écran). Des animations lors de la sélection de la fenêtre peuvent être utiles. En raison de ma configuration (j’utilise parfois un deuxième écran au-dessus de l’écran de mon ordinateur portable), les fenêtres hors écran sont généralement affichées en dessous. En portant Alt+F7+Up les amène donc à la vue.
J'ai eu le même problème avec Winamp. La seule solution (insatisfaisante) que j'ai trouvée jusqu'à présent: changer la résolution de l'écran en une résolution différente
Thomas
Vous pouvez également utiliser UltraMon (non graphique, Windows, interface graphique) pour configurer un raccourci clavier permettant de déplacer une fenêtre vers le moniteur suivant ou précédent.
De Déplacez une fenêtre vers le moniteur inférieur/supérieur avec un raccourci sous Windows by Tymric :
J'ai écrit un script AHK.
Usage:
Win + Alt + Arrow: Déplacez la fenêtre active sur le moniteur dont la direction est indiquée par la flèche. Notez que cela peut entraîner le déplacement de votre fenêtre en dehors de l'écran si vous essayez de monter à partir du moniteur 2 ou directement du moniteur 3 dans votre configuration. Je vais le mettre à jour dans le futur.
Win + Alt + Number: Déplace la fenêtre active vers le numéro de moniteur donné
#Persistent
SysGet, MonitorCount, MonitorCount
#!Up::
GoSub CalculateDisplacement
WinMove, A, , %xPos%, %displaceYneg%
return
#!Down::
GoSub CalculateDisplacement
WinMove, A, , %xPos%, %displaceYpos%
return
#!Left::
GoSub CalculateDisplacement
WinMove, A, , %displaceXneg%, %yPos%
return
#!Right::
GoSub CalculateDisplacement
WinMove, A, , %displaceXpos%, %yPos%
return
#!1::
GoSub CalculateDisplacement
WinMove, A, , %xPosOn1%, %yPosOn1%
return
#!2::
if (MonitorCount > 1) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn2%, %yPosOn2%
}
return
#!3::
if (MonitorCount > 2) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn3%, %yPosOn3%
}
return
#!4::
if (MonitorCount > 3) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn4%, %yPosOn4%
}
return
#!5::
if (MonitorCount > 4) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn5%, %yPosOn5%
}
return
#!6::
if (MonitorCount > 5) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn6%, %yPosOn6%
}
return
#!7::
if (MonitorCount > 6) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn7%, %yPosOn7%
}
return
#!8::
if (MonitorCount > 7) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn8%, %yPosOn8%
}
return
#!9::
if (MonitorCount > 8) {
GoSub CalculateDisplacement
WinMove, A, , %xPosOn9%, %yPosOn9%
}
return
CalculateDisplacement:
WinGetPos, xPos, yPos, , , A
Loop, %MonitorCount% {
SysGet, MonitorDimension, Monitor, %A_Index%
if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
currentMonitor = %A_Index%
}
}
SysGet, thisMonitor, Monitor, %currentMonitor%
displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
Loop, %MonitorCount% {
SysGet, nextMonitor, Monitor, %A_Index%
xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
}
return
placez le curseur sur la barre des tâches ... cliquez avec le bouton droit de la souris sur la fenêtre d'affichage côte à côte ... pour afficher la fenêtre à l'écran ... et, enfin, ramener le curseur sur la barre des tâches, cliquez avec le bouton droit de la souris et sélectionnez Annuler la fenêtre d'affichage côte à côte ..
Parfois, cela résolue:
Extend
ou une autre option et toutes les fenêtres seront en cascade. Déplacez la fenêtre souhaitée vers l'écran principal.J'ai écrit un outil appelé Borderline qui déplacera automatiquement les fenêtres hors écran à l'écran lors de l'exécution. Vous devez l'exécuter quand vous en avez besoin (cela fonctionne mieux si vous lui attribuez un raccourci clavier ou si vous le placez dans le menu Démarrer), mais cela signifie également qu'il n'est pas toujours exécuté en arrière-plan.