Logiciel gratuit pour bouger la souris en télétravail

Catégorie < windows >

1FORMATIK.com
Espace ~public
© 1998 - 2024

Sommaire

  • Solution pour bouger la souris automatiquement
  • Vidéo explicative YouTube
  • Code source du script PowerShellPS1
  • Téléchargement du logiciel version PowerShell
  • Téléchargement du logiciel version DotNet

Information

Rédigé par Antoine
Publié le 2023-12-17
Modifié le 2023-12-19
3415 affichages
5 likes
0 non-like

Solution pour bouger la souris automatiquement

Les logiciels qui bougent la souris automatiquement en télétravail sont principalement utilisés pour simuler votre activité, même lorsque vous n'êtes pas physiquement présent devant votre ordinateur. L'idée derrière cette pratique est de maintenir une apparence d'activité sur la machine.

Pour bouger la souris automatiquement, avec Windows, on peut utiliser PowerShell. PowerShell est un langage de script développé par Microsoft et il est par défaut intégré à totes les versions récentes de Windows.

Le logiciel PowerShell que je vous propose est décliné en deux versions :

  • Une version qui bouge la souris automatiquement en continue.
  • Une version qui bouge la souris automatiquement selon des plages horaires.

Les deux logiciels PowerShell sont gratuits.

Pour ceux d'entre vous qui ne sont pas à l'aise avec PowerShell, ou bien qui ne réussissent pas à faire fonctionner PowerShell sur leur PC, j'ai développé une autre version du logiciel avec DotNet. Celle-ci est explicitée et peut être téléchargée à la fin du tutoriel.

Il est important de noter que l'utilisation de mon logiciel soulève quelques questions éthiques, et il n'est surement pas autorisé pas votre entreprise.

Il y a fort à parier que si vos employeurs s'aperçoivent que vous utilisez un tel logiciel, ils considéreront cela comme une violation de confiance et une faute grave.

Vidéo illustrative via YouTube

Code source du script PS1

Mon logiciel fait bouger automatiquement la souris de manière circulaire sur l'écran selon des plages horaires que vous pouvez spécifier. Il offre ainsi un moyen de détourner l'éventuel flicage d'activité de vos employeurs lorsque vous êtes en télétravail.

Voici le code source du script PowerShell.

# Désactive la mise en veille de l'ordinateur et des écrans
powercfg /change standby-timeout-ac 0
powercfg /change monitor-timeout-ac 0

# Charge le module Forms de PowerShell
Add-Type -AssemblyName System.Windows.Forms

# Définit les constantes nécessaires
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class MouseInput {
[DllImport("user32.dll", SetLastError = true)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, IntPtr dwExtraInfo);

public const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
public const uint MOUSEEVENTF_LEFTUP = 0x0004;
}
"@

# Fonction pour effectuer un clic gauche
function SimulerClicGauche {
[MouseInput]::mouse_event([MouseInput]::MOUSEEVENTF_LEFTDOWN, 0, 0, 0, [System.IntPtr]::Zero)
Start-Sleep -Milliseconds 100  # Ajustez la durée si nécessaire
[MouseInput]::mouse_event([MouseInput]::MOUSEEVENTF_LEFTUP, 0, 0, 0, [System.IntPtr]::Zero)
}

# Récupère la fenêtre PowerShell actuelle
$consoleWindow = [System.Windows.Forms.Screen]::FromHandle((Get-Process -Id $PID).MainWindowHandle).Bounds

Write-Host "Logiciel anti-flicage télétravail sans plages horaires version 1.1"
Write-Host "Code par Antoine @ 1formatik.com"
Write-Host "--------------------------------------------------"
Write-Host "Pour arrêter le logiciel lorsque la souris bouge, maintenez la touche CTRL et appuyez sur la touche C"

while ($true) {
$centerX = $consoleWindow.Left + ($consoleWindow.Width / 2)
$centerY = $consoleWindow.Top + ($consoleWindow.Height / 2)
$angle = 0
$radius = 75  # Rayon du cercle (demi-diamètre)

while ($angle -lt 360) 
{
$x = [math]::sin($angle * [math]::PI / 180) * $radius
$y = [math]::cos($angle * [math]::PI / 180) * $radius

$x += $centerX
$y += $centerY

[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point([math]::Round($x), [math]::Round($y))

# Vérifie si la touche CTRL+C est enfoncée pour arrêter le script
if ([Console]::KeyAvailable) 
{
$key = [Console]::ReadKey($true)
if ($key.Key -eq 'C' -and $key.Modifiers -eq 'Control') 
{
Write-Host "Arrêt du script."
return
}
}

Start-Sleep -Milliseconds 10
$angle += 1
}

# Envoie le clic gauche à la fin de la rotation complète
Start-Sleep -Milliseconds 100
SimulerClicGauche
Start-Sleep -Milliseconds 10000    
}

Voici une explication des principales fonctions :

  • Add-Type -AssemblyName System.Windows.Forms charge le module Forms de PowerShell, qui permet d'accéder aux fonctionnalités graphiques, notamment pour manipuler la souris.
  • $consoleWindow = [System.Windows.Forms.Screen]::FromHandle((Get-Process -Id $PID).MainWindowHandle).Bounds récupère les informations sur la fenêtre actuelle de la console PowerShell, notamment ses coordonnées et sa taille.
  • Les lignes ci-dessous demandent à l'utilisateur de saisir les plages horaires pendant lesquelles le mouvement de la souris sera activé.
$matinDebut = Read-Host "Entrez l'heure de début pour la plage horaire du matin (par exemple, 9h00)"
$matinFin = Read-Host "Entrez l'heure de fin pour la plage horaire du matin (par exemple, 12h30)"
$apresmidiDebut = Read-Host "Entrez l'heure de début pour la plage horaire de l'après-midi (par exemple, 14h00)"
$apresmidiFin = Read-Host "Entrez l'heure de fin pour la plage horaire de l'après-midi (par exemple, 17h30)"
  • La partie ci-dessous vérifie si l'heure actuelle est en dehors des plages horaires spécifiées par l'utilisateur. Si c'est le cas, le script attend pendant 60 secondes avant de vérifier à nouveau.
if (($var_heureActuelle -lt $var_matinDebut -or $var_heureActuelle -ge $var_matinFin) -and ($var_heureActuelle -lt $var_apresmidiDebut -or $var_heureActuelle -ge $var_apresmidiFin)) {
# Si on est en dehors des plages horaires, on attend 60 secondes avant de revérifier
Start-Sleep -Seconds 60
}
  • Dans la dernière partie du code, si l'heure actuelle est dans les plages horaires spécifiées, le script entre dans une boucle qui déplace la souris de manière circulaire, mouvements défini par les variables $angle et $radius. Les positions de la souris sont mises à jour à chaque itération de la boucle, créant ainsi un mouvement circulaire ; à la fin de chaque rotation le script simule un clic gauche de la souris. Le script continue à boucler jusqu'à ce que l'utilisateur appuie sur les touches Ctrl + C pour arrêter le script.
else {
# Si on est dans les plages horaires, on bouge la souris
$centerX = $consoleWindow.Left + ($consoleWindow.Width / 2)
$centerY = $consoleWindow.Top + ($consoleWindow.Height / 2)

$angle = 0
$radius = 75  # Rayon du cercle (demi-diamètre)

while ($angle -lt 360) {
$x = [math]::sin($angle * [math]::PI / 180) * $radius
$y = [math]::cos($angle * [math]::PI / 180) * $radius

$x += $centerX
$y += $centerY

[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point([math]::Round($x), [math]::Round($y))

# Vérifie si la touche CTRL+C est enfoncée pour arrêter le script
if ([Console]::KeyAvailable) {
$key = [Console]::ReadKey($true)
if ($key.Key -eq 'C' -and $key.Modifiers -eq 'Control') {
Write-Host "Arrêt du script."
return
}
}

Start-Sleep -Milliseconds 10  # Ajuste la durée pour changer la vitesse du mouvement
$angle += 1
}
}

Télécharger le logiciel version PowerShell

Cliquez sur le lien ci-contre pour télécharger le fichier archive au format ZIP.

Il contient les fichiers suivants :

  • Fichier script teletravail-simple.ps1.
  • Fichier script teletravail-horaires.ps1.
  • Fichier information 1formatik.txt.

Une fois les fichiers dézippés, effectuez un clic-droit sur le fichier ps1, puis sélectionnez Exécuter avec PowerShell.

Télécharger le logiciel version DotNet

Comme évoqué précédement, j'ai développé une seconde version du logiciel avec DotNet.

Pour fonctionner, la dernière version de Microsoft .NET doit être installée sur votre PC Windows.

Par ailleurs mon logiciel ne dispose pas de certificat de code (certificat payant), donc lorsque vous cliquerez sur le fichier EXE, windows vous dira que l'application a été bloquée car elle provient d'un éditeur non reconnu (moi). Cliquez sur informations complémentaires puis Exécuter quand même pour outre-passer cet avertissement.

logiciel DotNet

Aperçu du logiciel version .NET

Cliquez sur le lien ci-contre pour télécharger le fichier archive au format ZIP.

Il contient un dossier qui contient lui-même les fichiers suivants :

  • Fichier JSON TELETRAVAIL.runtimeconfig.json.
  • Fichier DLL TELETRAVAIL.dll.
  • Fichier DLL WindowsInput.dll.
  • Fichier EXE TELETRAVAIL.exe.

Une fois le fichier ZIP ouvert, glissez le dossier sur votre bureau (ou ailleurs), double cliquez le fichier TELETRAVAIL.exe.

Ce contenu vous a-t-il été utile ?