Visualizzazione post con etichetta SendKeys. Mostra tutti i post
Visualizzazione post con etichetta SendKeys. Mostra tutti i post

domenica 3 dicembre 2023

PowerShell: Impedire il blocco del computer o l'attivazione screensaver a seguito inattività

Dopo un periodo di inattività, Windows provvede ad attivare lo screensaver e/o a bloccare il computer. Tale comportamento può essere personalizzato tramite le impostazioni del sistema operativo tuttavia, in alcuni contesti, potrebbe essere utile disporre di uno script PowerShell che faccia credere a Windows che il sistema sia in uso e impedire il blocco o la visualizzazione dello screensaver. Si pensi ad esempio ai PC aziendali per i quali l'accesso alle impostazioni è inibito all'utente, oppure per un attività temporanea da eseguire sul pc e (per pigrizia) non si intendono modificare le impostazioni del sistema.
PowerShell

In questi casi possiamo utilizzare il metodo SendKeys per simulare la pressione di un tasto da parte dell'utente. Uno semplice script potrebbe essere il seguente
 # Crea un oggetto Wscript.Shell che consente di accedere alla shell di Windows  
 $WShell = New-Object -com "Wscript.Shell"  
 # Ciclo infinito. Per interromperlo premere CTRL+C o chiudere la finestra  
 while ($true)  
 {  
  # Simula la pressione del tasto Bloc Scorr   
  # Il tasto viene premuto 2 volte per riportare lo stato di Bloc Scorr a quello iniziale  
  $WShell.SendKeys("{SCROLLLOCK}")  
  Start-Sleep -Milliseconds 100  
  $WShell.SendKeys("{SCROLLLOCK}")  
  # Attendo 5 minuti  
  Start-Sleep -Seconds 300  
 }   
Per specificare i caratteri che non vengono visualizzati quando si preme un tasto, come INVIO o TAB, e i tasti che rappresentano azioni anziché caratteri, è possibile  utilizzare i codici della seguente tabella.
Tasto Codice
BACKSPACE
{BACKSPACE}, {BS}, {BKSP}
PAUSA
{BREAK}
CAPS LOCK
{CAPSLOCK}
CANC
{DELETE}, {DEL}
FRECCIA GIU'
{DOWN}
FINE
{END}
INVIO
{ENTER}, ~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS
{INSERT}, {INS}
FRECCIA SX
{LEFT}
BLOC NUM
{NUMLOCK}
PAG GIU'
{PGDN}
PAG SU'
{PGUP}
STAMP
{PRTSC}
FRECCIA DX
{RIGHT}
BLOC SCORR
{SCROLLLOCK}
TAB
{TAB}
FRECCIA SU'
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}
+
{ADD}
-
{SUBTRACT}
*
{MULTIPLY}
/
{DIVIDE}


Per specificare i tasti combinati con qualsiasi combinazione dei tasti MAIUSC, CTRL e ALT, far precedere il codice del tasto da uno o più dei seguenti codici.
Tasto Codice
SHIFT
+
CTRL
^
ALT
%