Windows-Software zum Verschieben eines beliebigen Fensters zwischen mehreren Monitoren (Bildschirmen) mithilfe von Tasten, ABER ohne die Größe des verschobenen Fensters zu ändern

Ich habe einen Computer mit mehreren Bildschirmen:

Geben Sie hier die Bildbeschreibung ein

und ich benutze WindowPad , um jedes Fenster auf dem Bildschirm zu verschieben (anzuordnen) , und dieses Programm ist zu fähig, sie durch Drücken von + zwischen Monitoren zu verschieben .WinKeyEnter

Das Problem ist: Das verschobene Fenster wird auf die entsprechende Größe des neuen Monitors neu skaliert (in der Größe geändert), wie Sie in den beiden Bildern unten sehen können. Von einem 1280x1024-Bildschirm:

Geben Sie hier die Bildbeschreibung ein

zu einem 1920x1200 Bildschirm:

Geben Sie hier die Bildbeschreibung ein

Beachten Sie das in der Größe geänderte Putty SSH- Konsolenfenster. Das will ich nicht.

Das Verschieben von Fenstern ohne Verwendung der Maus ist für mich äußerst nützlich, aber ich konnte keinen praktischen Weg finden, dies zu tun, ohne die Größe des Fensters zu ändern.
Das Popup-Menü , das die meisten Fenster haben, ist nicht gültig, denn selbst wenn ich die Fenster verschieben kann, ist diese Bewegung zu langsam (ich bevorzuge in diesem Fall die Verwendung der Maus):

Geben Sie hier die Bildbeschreibung ein

WinKey+ Shift+ arrowfunktioniert nicht auf meinem Windows 7 SP1, ich weiß nicht warum.

Ideen sind willkommen.

Wie würde ein maximiertes Fenster auf Bildschirm 1 ohne Neuskalierung passen, wenn Sie es auf Bildschirm 6 verschieben, oder möchten Sie, dass sich das Fenster über mehrere Monitore erstreckt?
Du hast recht, @Timmy, daran habe ich nicht gedacht. Glücklicherweise habe ich die Lösung gefunden: Ich habe den WindowPad-Quellcode erfolgreich geändert, und jetzt verschiebt es jedes Fenster, ohne es neu zu skalieren; und maximierte Fenster bleiben zwischen Monitoren maximiert. Ich recherchiere, um zu erfahren, ob meine Lösung hier bei SuperUser oder in einem anderen Forum wie StackOverFlow veröffentlicht werden sollte (solange es sich um eine Programmierantwort handelt). Gebt mir einfach ein paar Tage Zeit und ich werde hier meine Methode posten.
Timmy, ich habe meine Antwort hier hinzugefügt. Es basiert auf der Quellmodifikation. Ich werde vorkompilierte .exeRepositories zu AutoHotKey-Foren hinzufügen, solange ich weiß, wie es geht. Ich nehme an, SuperUser hat keinen Speicher für Dateien, also kann ich nicht über einen anderen Weg nachdenken.
Gute Arbeit! Ich denke, es ist in Ordnung, hier einen Code zu hinterlassen, solange es klare Anweisungen zur Ausführung gibt. Sie können es auch bei Github speichern

Antworten (3)

Sie benötigen keine spezielle Software

Win+Shift+Linkspfeil: Fenster auf den linken Monitor verschieben
Win+Shift+Rechtspfeil: Fenster auf den rechten Monitor verschieben

Außerdem öffnet Windows-P den Display-Umschalter:

Geben Sie hier die Bildbeschreibung ein

Nur Computer ist die Standardoption – und der Name sagt alles.
Duplizieren klont Ihren Bildschirm auf ein angeschlossenes sekundäres Display, einen Monitor oder Projektor.
Erweitern erweitert den Desktop, sodass Sie Platz für zusätzliche Fenster schaffen können.
Der Projektor schaltet nur das LCD Ihres Laptops aus und verwandelt den Projektor in Ihren Monitor

Win+Shift+Links-/Rechtspfeil funktionieren auf meinem Computer nicht. Und Windows+P ist nicht gültig, da ich 6 Bildschirme habe. Info zum Originalpost hinzugefügt.

Ich habe den ursprünglichen WindowPad -Quellcode so geändert, dass die Fenstergröße nicht geändert wird , wenn der Monitor verschoben oder geändert wird.

Dies sind die Schritte:

  • Über den obigen Link herunterladen und entpacken.

  • So deaktivieren Sie die Größenänderung von Fenstern beim Verschieben von Bearbeiten \source\WindowPad.ahkzu Ändern (Windows Notepad ist in Ordnung):

    ; Move and resize.
    WinMove,,, newx, newy, neww, newh
    

bis (beachte die Kommentare mit ;Zeichen) :

        ; Move and resize.
;        WinMove,,, newx, newy, neww, newh
        WinMove,,, newx, newy, w, h

und ändern:

wp_CalcNewSizeAndPosition:
    ; Calculate desired size.
    neww := restore_w != "" ? restore_w : Round(monWidth * widthFactor)
    newh := restore_h != "" ? restore_h : Round(monHeight * heightFactor)

to (wir behalten einige Zeilen bei, indem wir auch Kommentare verwenden):

wp_CalcNewSizeAndPosition:
    ; Calculate desired size.
;    neww := restore_w != "" ? restore_w : Round(monWidth * widthFactor)
;    newh := restore_h != "" ? restore_h : Round(monHeight * heightFactor)
    neww := w
    newh := h
  • So deaktivieren Sie die Größenänderung von Fenstern, wenn Sie den Bildschirm bearbeiten , um ihn \source\WindowPad.ahkzu ändern:

; Calculate new size. if (wp_IsResizable()) { w := Round(w*(mdw/msw)) h := Round(h*(mdh/msh)) }

zu:

    ; Calculate new size.
    if (wp_IsResizable()) {
;        w := Round(w*(mdw/msw))
;        h := Round(h*(mdh/msh))
        w := w
        h := h
    }

(eine ziemlich lächerliche Änderung, aber sie hilft, den Sinn der Änderung zu verstehen)

  • Jetzt haben Sie Ihre .ahk-Datei, die Sie ausführen können, wenn Sie AutoHotKey installiert haben . Oder kompilieren Sie es.exe mit demselben Programm ( Convert .ahk to .exe).

  • Und eine kleine Verbesserung: Diese Zeilen hier verhindern, dass Sie Ihr eigenes Symbol in die Taskleiste legen (Sie können es beim Kompilieren der .ahkDatei auswählen, aber es wird dort nicht angezeigt):

.

if A_IsCompiled  ; Load icons from my custom WindowPad.exe.
{
; Default icon is 32x32, so doesn't look good in the tray.
Menu, Tray, Icon, %A_ScriptFullPath%, 2
}
else if (A_LineFile = A_ScriptFullPath)
{   ; Set the tray icon, but only if not included in some other script.
wp_SetTrayIcon(true)
; Use OnMessage to catch "Suspend Hotkeys" or "Pause Script"
; so the "disabled" icon can be used.
OnMessage(0x111, "WM_COMMAND")
}

Also kommentiert sie einfach alle:

;    if A_IsCompiled  ; Load icons from my custom WindowPad.exe.
;    {
;        ; Default icon is 32x32, so doesn't look good in the tray.
;        Menu, Tray, Icon, %A_ScriptFullPath%, 2
;    }
;    else if (A_LineFile = A_ScriptFullPath)
;    {   ; Set the tray icon, but only if not included in some other script.
;        wp_SetTrayIcon(true)
;        ; Use OnMessage to catch "Suspend Hotkeys" or "Pause Script"
;        ; so the "disabled" icon can be used.
;        OnMessage(0x111, "WM_COMMAND")
;    }

und jetzt können Sie Ihre .ahkzu einer kompilieren .exe, die Ihr bevorzugtes Symbol für die Datei und für das Taskleistensymbol hat (jedes AutoHotKey-Symbol in der Taskleiste hat das gleiche Grün H, wenn nicht anders angegeben).

Meine Kompilierung zu .exe funktioniert fantastisch. Jetzt ist WindowPad das beste Programm, das ich je gesehen habe, um Fenster zu verschieben und anzuordnen, sogar mit mehreren Bildschirmen.

Bitte melden Sie Fehler, wenn Sie sie finden.

Sie können auch UltraMon (nicht kostenlos, Windows, GUI) verwenden, um eine Tastenkombination einzurichten, um ein Fenster zum nächsten oder vorherigen Monitor zu verschieben.

Geben Sie hier die Bildbeschreibung ein

Wie Jan sagte, hat Windows 7 einige native Verknüpfungen, die ich nicht verwende, weil ich an Winden linken Mausklick binde:

  • Win+ Shift+ Arrow Leftum ein Fenster auf den linken Monitor zu verschieben
  • Win+ Shift+ Arrow Rightum ein Fenster auf den rechten Monitor zu verschieben

Wie Sie habe ich 6 Monitore, daher muss ich in meinem Fall zwischen den Monitoren 3 und 4 und zwischen den Monitoren 5 und 6 auch ein Fenster nach unten / oben verschieben:

Geben Sie hier die Bildbeschreibung ein

Ich habe gesehen, dass AHK einige Funktionen dafür haben könnte, zB WindowPad und WindowPadX , aber es ist mir nicht klar, wie man eine solche Tastenkombination einstellt, also habe ich vor einiger Zeit die Frage hier gestellt: Verschieben Sie ein Fenster mit auf den unteren/oberen Monitor eine Verknüpfung unter Windows