3 votes

Comment empêcher l'économiseur d'écran

Comment puis-je empêcher l'économiseur d'écran de fonctionner sur Windows xp ? Je ne peux pas le désactiver à cause d'un logiciel de sécurité, mais s'il y a un petit programme qui peut simuler une pression sur une touche toutes les 2-3 minutes, cela devrait faire l'affaire.

2voto

ukanth Points 10420

Il existe des logiciels gratuits pour faire ce travail,

1voto

IMFerret Points 11

Vous pouvez exécuter un PowerShell comme celui ci-dessous. Aucune installation n'est requise :

Clear-Host
# Lines needed for the notification
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
Add-Type -AssemblyName System.Windows.Forms 

$form = New-Object System.Windows.Forms.Form
$Timer = New-Object System.Windows.Forms.Timer
$ContextMenu = New-Object System.Windows.Forms.ContextMenu
$MenuItem = New-Object System.Windows.Forms.MenuItem

$form.ShowInTaskbar = $false
$form.WindowState = "minimized"

$ToggleCount = 0

$WShell = New-Object -com "Wscript.Shell"

$Logfile = "$($env:userprofile)\SLJog_$(gc env:computername).log"
#Write Host $Logfile

$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon 
$objNotifyIcon.Icon = "C:\Program Files\Microsoft Office\Office16\FORMS\1033\RECL.ico"
$objNotifyIcon.ContextMenu = $ContextMenu
$objNotifyIcon.ContextMenu.MenuItems.AddRange($MenuItem)
$objNotifyIcon.Text = "Scroll Lock Toggle"
$objNotifyIcon.Visible = $True

$MenuItem.Text = "Exit"
$MenuItem.add_Click({
   $Timer.Stop()
   $Timer.Dispose()
   $objNotifyIcon.Visible = $False
   LogWrite ("$($time), Reference position:X  $($global:p1.X)xY $($global:p1.Y), Current position:X $($global:p2.X)xY $($global:p2.Y),ToggleCount: $($ToggleCount) , Application exitted.")
   $form.Close()
})

$p1 = [System.Windows.Forms.Cursor]::Position
$p2 = [System.Windows.Forms.Cursor]::Position

$time = get-date -Format FileDateTime
#Write Host "ToggleCount: $($ToggleCount) , $($time) "
LogWrite ("$($time), Reference position:X  $($global:p1.X)xY $($global:p1.Y), Current position:X $($global:p2.X)xY $($global:p2.Y),ToggleCount: $($ToggleCount) , Application started")

$Timer.Interval = 300000 # (5 min)
$Timer.add_tick({Toggle-SL})
$Timer.Enabled = $true
$Timer.Start()

Function LogWrite
{
   Param ([string]$logstring)
   Add-content $Logfile -value $logstring
}

function Toggle-SL()
{
   $time = get-date -Format FileDateTime
   #Write Host "Timer toggled" 
   $global:p2 = [System.Windows.Forms.Cursor]::Position
   LogWrite ("$($time), Reference position:X  $($global:p1.X)xY $($global:p1.Y), Current position:X $($global:p2.X)xY $($global:p2.Y),ToggleCount: $($ToggleCount) , Timer triggered")

   if ($global:p1.X -ne $global:p2.X -or $global:p1.Y -ne $global:p2.Y) {
    $global:ToggleCount = 0
    LogWrite ("$($time), Reference position:X  $($global:p1.X)xY $($global:p1.Y), Current position:X $($global:p2.X)xY $($global:p2.Y),ToggleCount: $($ToggleCount) , Movement detected, togglecount zeroed")
    }
   If ($global:p1.X -eq $global:p2.X -and $global:p1.Y -eq $global:p2.Y -and $global:ToggleCount -lt 12) 
    {
    $objNotifyIcon.Icon = "C:\Program Files\Microsoft Office\Office16\FORMS\1033\CNFNOT.ico"
    $objNotifyIcon.Text = "Scroll Lock Toggle - Toggled $($global:ToggleCount) times"
    $WShell.sendkeys("{SCROLLLOCK}")
    $global:p1.X = $global:p1.X + 5
    $global:p1.Y = $global:p1.Y + 5
    [System.Windows.Forms.Cursor]::Position = $global:p1.X,$global:p1.Y
    Start-Sleep -Milliseconds 100
    $WShell.sendkeys("{SCROLLLOCK}")
    $global:p1.X = $global:p1.X - 5
    $global:p1.Y = $global:p1.Y - 5
    [System.Windows.Forms.Cursor]::Position = $global:p1.X,$global:p1.Y
     $global:ToggleCount++
     LogWrite ("$($time), Reference position:X  $($global:p1.X)xY    $($global:p1.Y), Current position:X $($global:p2.X)xY $($global:p2.Y),ToggleCount: $($ToggleCount) , SL Toggled.")
    }
  $global:p1 = [System.Windows.Forms.Cursor]::Position
  #Write Host "ToggleCount: $($ToggleCount) , $($time) "
  $objNotifyIcon.Icon = "C:\Program Files\Microsoft Office\Office16\FORMS\1033\RECL.ico"
  $objNotifyIcon.Text = "Scroll Lock Toggle - Toggled $($global:ToggleCount) times"
}

[void][System.Windows.Forms.Application]::Run($form)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X