Comment simuler une touche clavier avec PowerShell ?

Réponses rédigées par Antoine
Dernière mise à jour : 2019-02-27 13:05:09
Question

Je cherche un script PowerShell pour simuler le fait de cliquer sur une touche du clavier. J'utilise Windows 10.

Réponse

Tu peux en effet utiliser PowerShell pour simuler un touche clavier. Tu dois pour cela identifier l'application à laquelle sera envoyée la commande et ensuite lui passer la commande SendWait().

Pré-requis : activer l'exécution des scripts PowerShell sur Windows 10.

Dans cet exemple le script PowerShell effectue les opération suivantes :

  • Détermine le temps durant lequel le script fonctionnera (720 secondes).
  • Détermine le nom du processus vers lequel sera envoyée la commande (Le Bloc-notes).
  • Envoie la commande SendWait(), ici on simule la touche M.
  • Détermine l'intervalle d'envoi de la commande (10 secondes).

test.ps1

$timeout = new-timespan -Minutes 720
$sw = [diagnostics.stopwatch]::StartNew()
while ($sw.elapsed -lt $timeout){
	[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
	[Microsoft.VisualBasic.Interaction]::AppActivate("Bloc-notes") 
	[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms") 
	[System.Windows.Forms.SendKeys]::SendWait("M")
    start-sleep -seconds 10
}
write-host "1FORMATIK.com SendWait"

Copiez le script, collez le dans un fichier txt, changez l'extension du fichier de txt vers ps1, lancez le Bloc-notes et exécutez le fichier PowerShell pour simuler la touche clavier.