it-swarm.com.de

Stellen Sie die Fensterposition einer Anwendung über die Befehlszeile ein

Ich habe eine Anwendung, die an der 0x0-Position meines Desktops startet. Ich möchte es in der Mitte meines Desktops öffnen. Ich möchte es nicht öffnen und mit einem Verschiebebefehl in die Mitte verschieben. Ich möchte nur, dass meine App sofort in der Mitte gestartet wird.

Gibt es eine Möglichkeit, dies über die Eingabeaufforderung zu tun? Irgendwie anders?

34
Inside Man

Dazu benötigen Sie ein zusätzliches Dienstprogramm wie cmdow.exe . Schauen Sie sich speziell die /mov Schalter. Sie können Ihr Programm entweder über cmdow starten oder es separat ausführen und dann cmdow aufrufen, um es wie gewünscht zu verschieben/in der Größe zu ändern.

24
Sorpigal

Habe festgestellt, dass AutoHotKey sehr gut für Fensterpositionierungsaufgaben ist.

Hier ist ein Beispielskript. Nennen Sie es notepad.ahk und führen Sie es dann über die Befehlszeile aus oder doppelklicken Sie darauf.

Run, notepad.exe
WinWait, ahk_class Notepad
WinActivate
WinMove A,, 10, 10, A_ScreenWidth-20, A_ScreenHeight-20

Es startet eine Anwendung (Editor) und passt dann die Fenstergröße so an, dass sie auf allen Seiten mit einem 10-Pixel-Rand im Fenster zentriert ist.

25
FuzzyWuzzy

Ich habe diese Frage gerade gefunden, als ich versucht habe, dasselbe zu tun.

Nach einigem Experimentieren bin ich auf eine Antwort gestoßen, die so funktioniert, wie es der OQ möchte und einfach ist, aber nicht sehr allgemein.

Erstellen Sie eine Verknüpfung auf Ihrem Desktop oder an einem anderen Ort (Sie können den Helfer zum Erstellen von Verknüpfungen im Kontextmenü verwenden), und legen Sie fest, dass das Programm "cmd.exe" ausgeführt und ausgeführt wird. Wenn das Fenster geöffnet wird, positionieren Sie es an der gewünschten Stelle. Um diese Position zu speichern, rufen Sie das Eigenschaften-Menü auf und klicken Sie auf "Speichern".

Wenn Sie möchten, können Sie jetzt auch andere Eigenschaften wie Farben festlegen. Ich empfehle dringend, den Puffer auf eine Breite von 120-240 und eine Höhe von 9999 zu ändern und den Schnellbearbeitungsmodus zu aktivieren (warum sind das nicht die Standardeinstellungen?!)

Jetzt haben Sie eine Verknüpfung, die funktioniert. Machen Sie eine davon für jedes CMD-Fenster, das Sie an einer anderen Stelle öffnen möchten.

Für den Trick kann der Windows-Befehl CMD START Verknüpfungen ausführen. Sie können die Fenster vor dem Start nicht programmgesteuert neu positionieren, aber zumindest wird sie dort angezeigt, wo Sie möchten, und Sie können sie (und andere) über eine Batchdatei oder ein anderes Programm starten.

Wenn Sie eine Verknüpfung mit cmd/c verwenden, können Sie eine Verknüpfung erstellen, mit der Sie ALLE Verknüpfungen auf einmal starten können, indem Sie einen Befehl verwenden, der wie folgt aussieht:

cmd /c "start cmd_link1 && start cmd_link2 && start cmd_link3"

Dies öffnet alle Ihre Befehlsfenster für Ihre bevorzugten Positionen und stellt Eigenschaften wie Vordergrundfarbe, Hintergrundfarbe, Schriftart, Administratormodus, Schnellbearbeitungsmodus usw. mit einem einzigen Klick individuell ein. Verschieben Sie nun diesen einen "Link" in Ihren Startordner und Sie haben eine automatische Wiederherstellung ohne externe Programme.

Dies ist eine ziemlich einfache Lösung. Es ist kein allgemeiner Zweck, aber ich glaube, es wird das Problem lösen, das die meisten Leute, die diese Frage lesen, zu lösen versuchen.

Ich habe dies kürzlich getan, also werde ich meine cmd-Datei hier posten:

cd /d C:\shortucts
for %%f in (*.lnk *.rdp *.url) do start %%f
exit

Späte Bearbeitung: Ich habe nicht erwähnt, dass, wenn der ursprüngliche Befehl cmd/c mit erhöhten Rechten ausgeführt wird, jedes Ihrer Fenster mit erhöhten Rechten gestartet werden kann (wenn die Erhöhung ausgewählt wurde), ohne Sie erneut einzeln aufzufordern. Dies war sehr praktisch, da ich jedes Mal, wenn ich meinen Computer starte, 3 cmd-Fenster und 3 andere Apps gestartet habe.

18
Bill K

Die Antwort von Bill K. war die eleganteste, wenn Sie nur ein Fenster beim Start oder über eine Verknüpfung auf dem Desktop starten möchten.

Öffnen Sie einfach das gewünschte Fenster, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften. Wählen Sie Layout aus, deaktivieren Sie "Fenster Systemposition lassen" und klicken Sie auf OK.

Das Fenster wird jetzt genau dort geöffnet, wo Sie es möchten. Auf anderen Registerkarten können Sie gleichzeitig Schrift- und Fensterfarben festlegen. Süss.

3
GCD56

Dies sollte wahrscheinlich ein Kommentar unter der Antwort cmdow.exe Sein, aber hier ist eine einfache Batch-Datei, die ich geschrieben habe, um eine ziemlich raffinierte und einfache Kontrolle über alle Fenster zu ermöglichen, die Sie in der Taskleiste sehen können.

Der erste Schritt besteht darin, cmdow /t Auszuführen, um eine Liste dieser Fenster anzuzeigen. Sehen Sie sich an, wie der Bildname in der Spalte Image und dann in der Befehlszeile lautet:

mycmdowscript.cmd imagename

Hier ist der Inhalt der Batch-Datei:

:: mycmdowscript.cmd

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

SET IMAGE=%1
SET ACTION=/%2
SET REST=1
SET PARAMS=

:: GET ANY ADDITIONAL PARAMS AND STORE THEM IN A VARIABLE

FOR %%I in (%*) DO (
   IF !REST! geq 3 (
      SET PARAMS=!PARAMS! %%I
   )
   SET /A REST+=1
)

FOR /F "USEBACKQ tokens=1,8" %%I IN (`CMDOW /t`) DO (
     IF %IMAGE%==%%J (

     :: you now have access to the handle in %%I
     cmdow %%I %ACTION% !PARAMS!

     )
)

ENDLOCAL
@echo on

EXIT /b

beispielverwendung

:: will set notepad to 500 500

mycmdowscript.cmd notepad siz 500 500

Sie könnten dies wahrscheinlich umschreiben, um mehrere Aktionen mit einem einzigen Befehl zu ermöglichen, aber ich habe es noch nicht versucht.

Damit dies funktioniert, muss sich cmdow.exe in Ihrem Pfad befinden. Beachten Sie, dass Sie beim Herunterladen möglicherweise von Ihrem AV-Programm angeschrien werden. Dieses Tool wurde ( ) in der Vergangenheit von Malware-Autoren zur Manipulation von Fenstern verwendet. Es ist an sich nicht schädlich.

2
dgo

Wenn Sie gerne eine Batch-Datei zusammen mit ein paar winzigen Hilfsprogrammen ausführen, finden Sie hier eine vollständige Lösung:
Wie kann eine Batchdatei ein Programm ausführen und die Position und Größe des Fensters festlegen? - Stapelüberlauf (Stand: 1. Mai 2012

1
user3260720

Setzen Sie dank FuzzyWuzzy den folgenden Code (Quick & Dirty Example für Bildschirmauflösung 1920x1080 - ohne automatische Berechnung von Breite und Höhe oder Verwendung von Funktionen usw.) in AutoHotKey , um Folgendes zu erreichen: enter image description here

v_cmd = c:\temp\1st_Monitor.ps1
Run, Powershell.exe -executionpolicy remotesigned -File %v_cmd%
SetTitleMatchMode 2
SetTitleMatchMode Fast
WinWait, PowerShell
Sleep, 1000
    ;A = Active window - [x,y,width,height]
WinMove A,, 0, 0,1920,500

v_cmd = c:\temp\2nd_Monitor.ps1
Run, Powershell.exe -executionpolicy remotesigned -File %v_cmd%
WinWait, PowerShell
Sleep, 1000
    ;A = Active window - [x,y,width,height]
WinMove A,, 0, 500,960,400

v_cmd = c:\temp\3rd_Monitor.ps1
Run, Powershell.exe -executionpolicy remotesigned -File %v_cmd%
WinWait, PowerShell
Sleep, 1000
    ;A = Active window - [x,y,width,height]
WinMove A,, 960, 500,960,400
1
Etay Gudai