Scorciatoia unica per Microsoft Edge: chiudere tutte le schede, aprire nuova tab e ridimensionare la finestra (guida completa con AutoHotkey e PowerShell)

Vuoi una sola scorciatoia per chiudere tutte le schede di Edge, aprire subito una nuova tab e riportare la finestra a una dimensione fissa? Edge non lo offre nativamente, ma con un piccolo macro‑script (AutoHotkey o PowerShell) puoi ottenerlo in modo affidabile e ripetibile.

Indice

Panoramica del problema

Il requisito è riunire tre azioni in un unico gesto da tastiera:

  1. Chiudere tutte le schede (cioè ogni finestra di Edge).
  2. Aprire immediatamente una nuova scheda.
  3. Impostare la finestra di Edge su un formato fisso (X, Y, Larghezza, Altezza).
AzioneScorciatoia integrata in EdgeStato attuale
Chiudere tutte le schede (chiusura finestra)Ctrl + Shift + W
(è possibile disattivare la richiesta di conferma in edge://settings/accessibility)
Disponibile
Aprire una nuova schedaCtrl + TDisponibile
Ridimensionare la finestra a dimensioni fisseNon esiste una scorciatoia nativa; va fatto manualmente

Conclusione: con le scorciatoie predefinite copri i primi due punti, ma per il ridimensionamento preciso serve uno strumento esterno o uno script. L’approccio più pulito è creare un “macro‑tasto” che esegue in sequenza chiusura, riapertura con nuova tab e ridimensionamento.

Strategie a confronto

EsigenzaAlternativaProControQuando usarla
Un solo tasto per tutte e tre le azioniMacro di sistema (AutoHotkey, PowerShell + scorciatoia, oppure combinazione PowerToys + script)Totale controllo; ripetibile; portabileServe un file di script; piccola configurazione inizialeQuando vuoi un flusso identico ogni volta, senza clic
Ridimensionamento a valori precisi (px)AutoHotkey: WinMove · PowerShell: Win32 API (MoveWindow/SetWindowPos)Pixel‑perfect; posizionamento centrato o su coordinate fisseRichiede script; la finestra non deve essere massimizzataSetup workstation, screencast, QA, demo
Ridimensionamento “abbastanza buono”Snap Assist: Win + frecce (metà/quarti)Zero script; sempre disponibileNiente dimensioni arbitrarieUso occasionale, layout veloci

Prerequisiti e buone pratiche

  • Disattiva la conferma “Chiudere tutte le schede?” se usi Ctrl+Shift+W: trova l’opzione in edge://settings/accessibility. Evita così interruzioni nel macro.
  • Lavora su una finestra non massimizzata: i comandi di ridimensionamento funzionano solo in stato “Normale”. Lo script può riportare la finestra in stato normale (restore) prima di muoverla.
  • Avvio automatico: se scegli AutoHotkey, metti lo script o un collegamento in shell:startup per averlo sempre attivo al login.
  • Stabilità: introduci piccoli delay tra le azioni (100–300 ms) per dare tempo a Windows/Edge di aggiornare lo stato delle finestre.
  • Profili Edge: se usi più profili, avvia Edge con --profile-directory="Default" (o un altro nome profilo) per uniformità.

Soluzione consigliata: AutoHotkey (v2) — un tasto che fa tutto

AutoHotkey è il modo più semplice e solido per creare una scorciatoia globale. Di seguito trovi uno script pronto all’uso per Windows 10/11 e Microsoft Edge (Chromium).

Passi rapidi

  1. Installa AutoHotkey v2.
  2. Crea un file EdgeMacro.ahk sul Desktop.
  3. Incolla lo script qui sotto, salva, poi fai doppio clic sul file per avviarlo.
  4. Premi Ctrl+Alt+E per eseguire la macro.

Script completo (AutoHotkey v2)

; EdgeMacro.ahk
; ---------------------------------------------------------
; Un solo hotkey per:
; 1) Chiudere TUTTE le finestre di Edge
; 2) Avviarne una nuova con tab pronta
; 3) Ridimensionare/posizionare la finestra su misure fisse
; ---------------------------------------------------------
#Requires AutoHotkey v2.0

; ======= Parametri da personalizzare =======
fixedW := 1280                   ; larghezza in px
fixedH := 800                    ; altezza in px
posX   := (A_ScreenWidth - fixedW) // 2   ; centra orizzontalmente
posY   := (A_ScreenHeight - fixedH) // 2  ; centra verticalmente
edgePath := "msedge.exe"         ; percorso (se serve, metti il path completo)
edgeArgs := "--new-window about:blank --profile-directory=""Default"""

; Combinazione di tasti globale (Ctrl+Alt+E)
Hotkey("^!e", CloseOpenResize)

; ======= Macro principale =======
CloseOpenResize(*) {
global fixedW, fixedH, posX, posY, edgePath, edgeArgs
```
; 1) Chiude gentilmente tutte le finestre di Edge
hwndList := WinGetList("ahk_exe msedge.exe")
for hwnd in hwndList {
    try {
        WinActivate("ahk_id " . hwnd)
        Sleep(80)
        ; Chiude la finestra attiva (tutte le schede incluse)
        Send("^+w")
        ; Se Edge chiede conferma, Enter la conferma
        Sleep(120)
        Send("{Enter}")
        WinWaitClose("ahk_id " . hwnd, , 2)
    } catch {
        ; Se la finestra è già sparita, ignora
    }
}

; 2) Avvia Edge su nuova finestra/tab
Run(edgePath . " " . edgeArgs)
; Attende che la finestra sia pronta
if WinWaitActive("ahk_exe msedge.exe", , 5) {
    ; 3) Porta in stato normale e ridimensiona
    WinRestore("ahk_exe msedge.exe")
    Sleep(80)
    WinMove(posX, posY, fixedW, fixedH, "ahk_exe msedge.exe")
    ; Garantisce una tab vuota pronta
    Sleep(80)
    Send("^t")
} else {
    MsgBox("Impossibile attivare Microsoft Edge.", "Errore", 48)
}
```
}

; ======= Opzionale: seconda hotkey per ripetere solo il ridimensionamento =======
;Hotkey("^!r", (*) => WinMove(posX, posY, fixedW, fixedH, "ahk_exe msedge.exe")) 

Come personalizzare

  • Dimensioni/posizione: modifica fixedW, fixedH, posX, posY. Esempio: posizionare a sinistra con larghezza 1100 px e altezza 900 px: fixedW := 1100 fixedH := 900 posX := 0 posY := 0
  • Hotkey: cambia Hotkey("^!e", ...). Esempi:
    • "#e" = Win+E
    • "^#e" = Ctrl+Win+E
    • "!F1" = Alt+F1
  • Profilo Edge: se usi un profilo non predefinito, cambia --profile-directory con il nome del tuo profilo (ad es. "Profile 2").
  • Percorso Edge: se msedge.exe non è nel PATH, imposta edgePath con il percorso completo (es.: "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe").

Avvio automatico e manutenzione

  1. Premi Win+R, digita shell:startup e premi Invio.
  2. Copiala qui un collegamento al tuo EdgeMacro.ahk.
  3. Opzionale: compila lo script in un eseguibile per distribuirlo ad altri PC (menu di AutoHotkey » Compiler).

Perché questa soluzione è la più solida

  • Non dipende da componenti extra né da layout di snap: funziona su qualsiasi monitor e DPI.
  • Chiude tutte le finestre di Edge in modo gentile, poi riparte sempre nello stato desiderato.
  • La sintassi di AutoHotkey v2 è moderna e più prevedibile rispetto alla v1 (migliore manutenzione).

Alternativa senza AHK: PowerShell con scorciatoia globale

Puoi ottenere lo stesso risultato usando solo PowerShell e una scorciatoia di Windows. L’idea è:

  1. Uno script PowerShell che chiude tutte le finestre di Edge, lo riapre e ridimensiona la nuova finestra tramite Win32 API.
  2. Un collegamento (.lnk) al file .ps1 con un “Tasto di scelta rapida” (ad es. Ctrl+Alt+E). Quando premi la combinazione, Windows esegue lo script.

Script PowerShell

# EdgeMacro.ps1
Chiude Edge, lo riapre su una nuova finestra/tab e ridimensiona la finestra.

param(
[int]$Width = 1280,
[int]$Height = 800,
[int]$X = -1,
[int]$Y = -1
)

Add-Type -AssemblyName System.Windows.Forms

$signature = @"
using System;
using System.Runtime.InteropServices;
public static class Win {
[DllImport("user32.dll")] public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd);
}
"@
Add-Type $signature

1) Chiudi gentilmente tutte le finestre di Edge

$procs = Get-Process msedge -ErrorAction SilentlyContinue
foreach ($p in $procs) {
try {
$null = $p.CloseMainWindow()
Start-Sleep -Milliseconds 250
if (-not $p.HasExited) { $p.Kill() }
} catch {}
}

2) Avvia Edge su nuova finestra/tab

$edge = "$env:ProgramFiles(x86)\Microsoft\Edge\Application\msedge.exe"
if (-not (Test-Path $edge)) { $edge = "msedge.exe" }
Start-Process $edge "--new-window about:blank --profile-directory=`"Default`""

3) Attendi la finestra principale

$hwnd = 0
for ($i=0; $i -lt 100; $i++) {
$p = Get-Process msedge -ErrorAction SilentlyContinue | Where-Object { $_.MainWindowHandle -ne 0 } | Select-Object -First 1
if ($p) { $hwnd = $p.MainWindowHandle; break }
Start-Sleep -Milliseconds 100
}

if ($hwnd -eq 0) { exit 1 }

4) Calcola posizione (centro se X/Y non specificati)

$sw = [System.Windows.Forms.Screen]::Primary.Bounds.Width
$sh = [System.Windows.Forms.Screen]::Primary.Bounds.Height
if ($X -lt 0) { $X = [int](($sw - $Width) / 2) }
if ($Y -lt 0) { $Y = [int](($sh - $Height) / 2) }

5) Ripristina, porta in primo piano e ridimensiona

[Win]::ShowWindowAsync($hwnd, 9) | Out-Null   # SW_RESTORE
[Win]::SetForegroundWindow($hwnd)  | Out-Null
[Win]::MoveWindow($hwnd, $X, $Y, $Width, $Height, $true) | Out-Null

6) Forza una nuova tab pronta

Add-Type -AssemblyName Microsoft.VisualBasic
$wshell = New-Object -ComObject WScript.Shell
$wshell.AppActivate($p.Id) | Out-Null
Start-Sleep -Milliseconds 120
$wshell.SendKeys("^{t}") 

Associare una scorciatoia globale allo script

  1. Salva EdgeMacro.ps1 in una cartella stabile (es. C:\Tools\EdgeMacro\).
  2. Crea un collegamento sul Desktop con destinazione: powershell.exe -ExecutionPolicy Bypass -File "C:\Tools\EdgeMacro\EdgeMacro.ps1" -Width 1280 -Height 800
  3. Apri le proprietà del collegamento » Tasto di scelta rapida e imposta ad esempio Ctrl+Alt+E.
  4. Sposta il collegamento in shell:startup se vuoi che sia disponibile ad ogni accesso (non obbligatorio).

Nota: l’opzione -ExecutionPolicy Bypass serve a permettere l’esecuzione del tuo script senza modificare la policy globale della macchina. In alternativa, firma lo script o imposta una policy più permissiva per la tua utenza.


Senza script: Snap Assist e FancyZones (limiti e quando conviene)

Se non vuoi usare script, puoi combinare i tasti di Windows per avvicinarti all’obiettivo, accettando però la rinuncia al formato “pixel‑perfect”.

  • Snap Assist: Win + / per dimezzare la finestra a sinistra/destra; aggiungi Win + / per i quarti.
  • Win + Z (Windows 11): richiama i layout di snap per scegliere rapidamente una griglia predefinita.
  • PowerToys » FancyZones: crea un layout personalizzato e trascina la finestra tenendo premuto Shift per “agganciarla” alla zona. È veloce, ma non è un unico tasto.

Check‑list di precisione (per evitare intoppi)

  • Conferma di chiusura disattivata in Edge (edge://settings/accessibility), altrimenti la macro si ferma sul prompt.
  • Edge non massimizzato: lo script esegue restore prima del WinMove, ma evita di forzare da uno stato di massimizzazione + Snap se noti comportamenti strani.
  • Ritardi adeguati: su PC lenti o con molte estensioni, aumenta gli Sleep (es. da 80/120 a 200/300 ms).
  • Monitor multipli / DPI: se lavori su più monitor con scaling diverso, preferisci posizionamento percentuale o calcola X/Y in base al monitor attivo (AHK consente di rilevarlo).
  • Profili: specifica sempre il profilo Edge con cui vuoi partire; altrimenti riprenderà l’ultimo usato.
  • Edge in background: se hai attivo l’esecuzione in background, la chiusura “gentile” potrebbe lasciare processi; il codice PowerShell include un fallback kill non aggressivo (dopo CloseMainWindow()).
  • Ambienti gestiti (azienda): policy di sicurezza potrebbero bloccare AutoHotkey o l’esecuzione di script. In tal caso, valuta una group policy che esegua lo script firmato.

Personalizzazioni avanzate

Ridimensionamento relativo allo schermo

Vuoi il 70% dello schermo, centrato? In AHK:

ratio := 0.70
fixedW := Floor(A_ScreenWidth * ratio)
fixedH := Floor(A_ScreenHeight * ratio)
posX   := (A_ScreenWidth - fixedW) // 2
posY   := (A_ScreenHeight - fixedH) // 2

Aprire direttamente una pagina o un’app web

Per aprire una pagina specifica, modifica edgeArgs:

edgeArgs := "--new-window https://intranet.local --profile-directory=""Default"""

Vuoi una finestra “app‑like” (senza barra degli indirizzi) per una singola webapp? Usa il parametro --app=<URL> al posto di --new-window. Dopo l’apertura, la parte di ridimensionamento resta identica.

Chiudere davvero “tutto” prima di ripartire

Se Edge ha più finestre sparse, lo script AHK già itera su tutte. Se preferisci una chiusura secca (ad esempio per evitare di lasciare download in sospeso), puoi aggiungere un blocco finale che verifica l’assenza del processo e, se presente, lo termina:

; In coda a CloseOpenResize()
try {
    while ProcessExist("msedge.exe")
        ProcessClose("msedge.exe")
} catch {
    ; ignora eventuali errori di permessi
}

Nota: questa variante è più “dura” e non salva i moduli non inviati.

Secondo hotkey: solo ridimensionamento

Quando hai già Edge aperto e vuoi solo riportarlo alle misure standard:

Hotkey("^!r", (*) =&gt; (
    WinRestore("ahk_exe msedge.exe"),
    Sleep(80),
    WinMove(posX, posY, fixedW, fixedH, "ahk_exe msedge.exe")
))

Domande frequenti

Serve disattivare sempre il prompt “Chiudere tutte le schede?”?
No, lo script AHK invia anche Enter dopo Ctrl+Shift+W, che nella maggior parte dei casi conferma la chiusura. Tuttavia, disattivare il prompt in edge://settings/accessibility rende la macro più fluida e predicibile.

Il ridimensionamento non ha effetto: perché?
Di solito la finestra è massimizzata o “bloccata” da uno snap. Lo script fa restore prima del move, ma se l’aggancio di Snap è molto stretto, premere una volta Alt+Spazio poi R (Ripristina) sblocca il ciclo.

Uso due profili: quale si avvia?
Quello indicato in --profile-directory. Se non specificato, Edge parte con l’ultimo usato. Imposta esplicitamente "Default" (o il nome del tuo profilo) per coerenza.

La scorciatoia di Windows sul collegamento non funziona sempre
I tasti di scelta rapida del collegamento funzionano quando Explorer è attivo e la scorciatoia è in Desktop/Start/Menu Programmi. Per affidabilità “sempre on”, preferisci AutoHotkey.

Posso usare solo PowerToys Keyboard Manager?
Keyboard Manager può rimappare tasti o combinazioni su altri tasti, non eseguire macro complesse con tempi e Win32 API. Puoi però usarlo per richiamare un eseguibile (lo script compilato) oppure affiancarlo a FancyZones.


Procedura consigliata completa (riassunto operativo)

  1. In Edge, disattiva la conferma di chiusura schede (vedi edge://settings/accessibility).
  2. Installa AutoHotkey v2, crea lo script EdgeMacro.ahk (codice fornito) e prova Ctrl+Alt+E.
  3. Regola fixedW, fixedH, posX, posY.
  4. Metti lo script in avvio automatico (shell:startup) se vuoi la scorciatoia sempre disponibile.
  5. Se preferisci PowerShell, usa EdgeMacro.ps1 e crea un collegamento con “Tasto di scelta rapida”.

Conclusione

  • Edge non offre un’unica scorciatoia che unisca chiusura di tutte le schede, nuova tab e ridimensionamento a misura fissa.
  • Le scorciatoie native (Ctrl+Shift+W, Ctrl+T) coprono solo chiusura/nuova tab.
  • La via più rapida per un “unico tasto che fa tutto” è un macro‑script:
    • AutoHotkey per la soluzione più semplice, stabile e portabile.
    • PowerShell se preferisci restare nel perimetro degli strumenti Microsoft, con scorciatoia associata al collegamento.
  • Senza script, Snap Assist e FancyZones sono utili ma non danno dimensioni arbitrarie e non sono un singolo tasto.

Appendice: snippet pronti e varianti rapide

AHK — apertura profilo specifico su URL e finestra centrata 1400×900

fixedW := 1400
fixedH := 900
posX   := (A_ScreenWidth - fixedW) // 2
posY   := (A_ScreenHeight - fixedH) // 2
edgeArgs := "--new-window https://dashboard.local --profile-directory=""Work"""

AHK — forzare chiusura di eventuali dialog di conferma

; Subito dopo Send("^+w")
Sleep(120)
for dlg in WinGetList("ahk_class #32770") {
    if WinGetProcessName("ahk_id " . dlg) = "msedge.exe" {
        ControlSend("{Enter}", , "ahk_id " . dlg)
    }
}

PowerShell — lancia Edge in modalità “app”

Start-Process $edge "--app=`"https://webapp.example/`" --profile-directory=`"Default`""

PowerShell — parametro per posizionare in alto a destra

powershell.exe -ExecutionPolicy Bypass -File "C:\Tools\EdgeMacro\EdgeMacro.ps1" -Width 1200 -Height 900 -X 720 -Y 0

Con questi esempi hai già tutto il necessario per modellare il comportamento esatto che desideri, con la garanzia che l’intera sequenza — chiudi tutto, nuova tab, ridimensiona — avvenga in modo identico ogni volta, con un solo gesto.

Indice