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.
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
|
%
|