Imposta la posizione della finestra di un’applicazione tramite la riga di comando

Ho un’applicazione che inizia nella posizione 0x0 del mio desktop. Voglio aprirlo al centro del mio desktop. Non voglio aprirlo e utilizzare un comando di spostamento per spostarlo al centro, voglio solo che la mia app inizi immediatamente nella posizione centrale.

C’è un modo per farlo via prompt dei comandi? Ogni altro modo?

Avrai bisogno di un’utilità aggiuntiva come cmdow.exe per fare ciò. Guarda in particolare l’ /mov . È ansible avviare il programma da cmdow o eseguirlo separatamente e quindi richiamare cmdow per spostarlo / ridimensionarlo come desiderato.

Hanno trovato che AutoHotKey è molto buono per le attività di posizionamento della finestra.

Ecco uno script di esempio. Chiamalo notepad.ahk e poi eseguilo dalla riga di comando o fai doppio clic su di esso.

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

Avvierà un’applicazione (blocco note) e quindi regolerà le dimensioni della finestra in modo che sia centrata nella finestra con un bordo di 10 pixel su tutti i lati.

Ho appena trovato questa domanda mentre ero in missione per fare la stessa cosa.

Dopo alcuni esperimenti mi sono imbattuto in una risposta che funziona come vorrebbe l’OQ ed è semplice come diamine, ma non per scopi molto generali.

Creare un collegamento sul desktop o altrove (è ansible utilizzare l’helper create-shortcut dal menu di scelta rapida), impostarlo per eseguire il programma “cmd.exe” ed eseguirlo. Quando la finestra si apre, posizionalo dove vuoi che sia la tua finestra. Per salvare quella posizione, apri il menu delle proprietà e premi “Salva”.

Ora, se lo desideri, puoi anche impostare altre proprietà come i colors e consiglio vivamente di cambiare il buffer in una larghezza di 120-240 e l’altezza a 9999 e abilitare la modalità di modifica rapida (perché non sono questi i valori di default!?!)

Ora hai una scorciatoia che funzionerà. Crea uno di questi per ogni finestra CMD che vuoi aprire in una posizione diversa.

Ora per il trucco, il comando START di CMD di Windows può eseguire scorciatoie. Non è ansible riposizionare le windows a livello di codice prima del lancio, ma almeno si trova dove vuoi e puoi lanciarlo (e altri) da un file batch o da un altro programma.

Usando una scorciatoia con cmd / c puoi creare una scorciatoia che possa lanciare TUTTI i tuoi collegamenti in una volta sola usando un comando che assomiglia a questo:

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

Questo aprirà tutte le windows di comando alle tue posizioni preferite e imposta individualmente proprietà come colore di primo piano, colore di sfondo, carattere, modalità amministratore, modalità di modifica rapida, ecc. Con un solo clic. Ora sposta quel “link” nella cartella di avvio e hai un ripristino dello stato automatico senza alcun programma esterno.

Questa è una soluzione piuttosto semplice. Non è uno scopo generale, ma credo che risolverà il problema che molte persone che leggono questa domanda stanno cercando di risolvere.

L’ho fatto recentemente, quindi posterò il mio file cmd qui:

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

EDIT in ritardo: non ho menzionato che se il comando cmd / c originale viene eseguito con elevazione, allora ciascuna delle windows può (se è stata selezionata l’elevazione) iniziare con elevazione senza richiedere nuovamente la conferma. Questo è stato davvero utile man mano che avvio Windows 3 cmd e altre 3 app tutte elevate nel tempo in cui avvii il mio computer.

Questo probabilmente dovrebbe essere un commento sotto la risposta cmdow.exe , ma qui è un semplice file batch che ho scritto per consentire un controllo abbastanza sofisticato e semplice su tutte le windows che puoi vedere nella barra delle applicazioni.

Il primo passo è eseguire cmdow /t per visualizzare un elenco di quelle windows. Guarda qual è il nome dell’immagine nella colonna Image , quindi riga di comando:

 mycmdowscript.cmd imagename 

Ecco i contenuti del file batch:

 :: 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 

esempio di utilizzo

 :: will set notepad to 500 500 mycmdowscript.cmd notepad siz 500 500 

Probabilmente potresti riscriverlo per consentire più azioni su un singolo comando, ma non l’ho ancora provato.

Affinché questo funzioni, cmdow.exe deve trovarsi nel percorso. Fai attenzione che quando lo scarichi, il tuo programma AV potrebbe urlare contro di te. In passato questo strumento è stato utilizzato dagli autori di malware per manipolare Windows. Non è dannoso da solo.

Se sei felice di eseguire un file batch insieme a un paio di piccoli programmi di supporto, qui viene pubblicata una soluzione completa:
Come può un file batch eseguire un programma e impostare la posizione e la dimensione della finestra? – Stack Overflow (chiesto: 1 maggio 2012)

La risposta di Bill K. è stata la più elegante se si desidera avviare una finestra all’avvio o iniziare da un collegamento sul desktop.

Basta aprire la finestra dove lo vuoi, fare clic con il tasto destro e scegliere Proprietà. seleziona Layout deseleziona “lascia la finestra di posizione del sistema” e fai clic su OK.

La finestra si aprirà proprio dove vuoi tu. È ansible impostare i colors dei font e della finestra contemporaneamente su altre tabs. dolce.