2011-08-30 08:32:07 +0000 2011-08-30 08:32:07 +0000
104
104

Comment puis-je empêcher un verrouillage d'écran imposé par la politique dans Windows 7 ?

Notre société BOFH impose le réglage du verrouillage d'écran avec un délai ridiculement court. C'est frustrant et contre-productif.

Y a-t-il un moyen d'empêcher le verrouillage automatique de l'écran ? Je suppose qu'il n'y a aucun moyen de contourner le paramètre imposé par la politique, mais il existe peut-être un logiciel qui imite l'activité de l'utilisateur.

Je demande juste avant de mettre en place une roue de souris perpétuelle. (vous comprenez ?)

Réponses (11)

92
92
92
2013-04-10 17:22:35 +0000

Si Windows Media Player est toujours installé, vous pouvez lire une vidéo en boucle et la minimiser (les exemples de vidéos “Faune” fonctionnent bien pour cela). Par défaut, tant qu'une vidéo est en cours de lecture, l'écran ne se verrouille pas.

89
89
89
2014-11-05 18:54:27 +0000

J'utilise un script que j'ai intitulé idle.vbs :

Dim objResult

Set objShell = WScript.CreateObject("WScript.Shell")    

Do While True
  objResult = objShell.sendkeys("{NUMLOCK}{NUMLOCK}")
  Wscript.Sleep (6000)
Loop

Toutes les six secondes, ce script fait basculer rapidement le clavier en mode numérique, faisant croire à Windows que quelqu'un interagit avec le clavier, empêchant ainsi le verrouillage de l'écran. Ce système fonctionne sur des fenêtres “vanille”, vous n'avez pas besoin d'outils de développement ou de script pour l'utiliser, il suffit de créer un fichier texte avec l'extension .vbs et de double-cliquer dessus (ou de le placer dans vos éléments de démarrage).

Edit : vous pouvez placer ce script dans vos éléments de démarrage avec

choco install IdleVbs -source https://www.myget.org/F/joshrivers-utility/

Pour plus d'informations sur l'installateur CLI de Choclatey (choco), veuillez consulter : https://chocolatey.org/

18
18
18
2015-06-24 17:31:31 +0000

Une autre option encore est le logiciel gratuit Caféine . Il est également gratuit pour un usage commercial. Sur la page d'accueil du programme :

Si vous avez des problèmes avec le verrouillage de votre PC ou si vous vous endormez, la caféine le maintiendra éveillé. Il fonctionne en simulant une pression sur une touche toutes les 59 secondes, de sorte que votre machine pense que vous travaillez toujours au clavier, donc ne verrouille pas l'écran ou n'active pas l'économiseur d'écran.

Caffeine fonctionne en simulant un événement de pression sur la touche F15 toutes les 59 secondes. De toutes les touches disponibles, F15 est probablement la moins intrusive (je n'ai jamais vu un clavier de PC avec cette touche !), et la moins susceptible d'interférer avec votre travail.

Cette solution prête à l'emploi vous permet également de contrôler quand l'activer et la désactiver :

Un double-clic sur l'icône du programme vide la cafetière, ce que représente l'icône, et désactive temporairement le programme. Un double-clic sur l'icône remplit à nouveau la cafetière, et maintient votre machine éveillée.

7
7
7
2011-08-30 14:59:16 +0000

Vous pouvez créer un script AutoIt pour soit appuyer en permanence sur une touche inutilisée (par exemple, faire basculer le verrouillage numérique, le verrouillage du défilement), soit dormir pendant une minute environ, soit répéter. Si vous ne souhaitez pas qu'il fonctionne en continu, vous pouvez également lancer le script en tant que tâche planifiée (si vous y avez accès) à lancer après que l'ordinateur ait été inactif pendant un certain temps. Ce script déplace le curseur de la souris d'un pixel dans le sens de la hauteur et le renvoie ensuite, puis se met en veille pendant 9 minutes (540000 millisecondes). Lorsque le script est en cours d'exécution, vous pouvez voir l'icône AutoIt dans la barre des tâches. Vous pouvez l'arrêter en faisant un clic droit sur cette icône et en choisissant l'option correspondante.

Pour créer un script, installez AutoIt, faites un clic droit dans n'importe quel dossier et choisissez New > AutoIt v3 Script, nommez-le, faites un clic droit sur ce nouveau script, choisissez Edit, collez le code fourni ci-dessus et enregistrez. Vous pouvez même le compiler dans .exe (encore une fois, à partir du menu contextuel) pour le lancer, par exemple, à partir de Windows Scheduler.

5
5
5
2014-06-06 21:36:21 +0000

Il existe une application androïde appelée “Timeout Blocker” qui vibre à un intervalle et sur laquelle vous pouvez placer votre souris. Il est cependant interdit de l'utiliser au travail. https://play.google.com/store/apps/details?id=com.isomerprogramming.application.timeoutblocker&hl=en

5
5
5
2013-03-09 03:28:45 +0000

Compilez ce fichier dans Visual Studio ou C# Express et lancez-le à partir d'une invite de commande (ou double-cliquez dessus). Nécessite .NET 4.0 ou supérieur. Il fait tout ce que vous cherchez.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using System.Windows.Forms; 

namespace ImWorkin
{
    class Program
    {
        [FlagsAttribute]
        public enum EXECUTION_STATE : uint
        {
            ES_SYSTEM_REQUIRED = 0x00000001,
            ES_DISPLAY_REQUIRED = 0x00000002,
            ES_CONTINUOUS = 0x80000000
        }
        public SYSTEMTIMEOUTS TimeOuts
        {
            get { return sysTimeouts; }
        }
        public struct SYSTEMTIMEOUTS
        {
            public int BATTERYIDLETIMEOUT;
            public int EXTERNALIDLETIMEOUT;
            public int WAKEUPIDLETIMEOUT;
        }

        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE flags);

        [DllImport("user32.dll", SetLastError = true, EntryPoint ="SystemParametersInfo")]
        internal static extern int SystemParametersInfo(int uiAction, int uiParam, ref int pvParam, int fWinIni);

        private static System.Threading.Timer preventSleepTimer = null;
        public const int SPI_GETBATTERYIDLETIMEOUT = 252;
        public const int SPI_GETEXTERNALIDLETIMEOUT = 254;
        public const int SPI_GETWAKEUPIDLETIMEOUT = 256;
        public static int Counter = 0;
        public static int timeOutinMS = 0;
        public static int batteryIdleTimer;
        public static int externalIdleTimer;
        public static int wakeupIdleTimer;
        public static SYSTEMTIMEOUTS sysTimeouts;

        static void Main(string[] args)
        {
            Console.WriteLine("You are about to be workin!! Just a moment...I need to calculate a few values.");
            string dots = string.Empty;
            for (int i =2; i < 60; i++)
            {
                dots = "";
                for (int ii = 0; ii < i; ii++)
                {
                    dots = dots + ".";
                }
                Thread.Sleep(100);
                Console.Clear();
                Console.WriteLine("You are about to be workin!! Just a moment...I need to calculate a few values.");
                Console.WriteLine(dots);
            }

            GetSystemTimeOuts();

            if (timeOutinMS < sysTimeouts.BATTERYIDLETIMEOUT)
                timeOutinMS = sysTimeouts.BATTERYIDLETIMEOUT;
            if (timeOutinMS < sysTimeouts.EXTERNALIDLETIMEOUT)
                timeOutinMS = sysTimeouts.EXTERNALIDLETIMEOUT;
            if (timeOutinMS < sysTimeouts.WAKEUPIDLETIMEOUT)
                timeOutinMS = sysTimeouts.WAKEUPIDLETIMEOUT;

            if (timeOutinMS == 0)
                timeOutinMS = 30;

            DisableDeviceSleep();
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("OK. I have calculated your computers timeout periods and set the ");
            Console.WriteLine("necessary hooks. Your computer will not shut off the monitor, will");
            Console.WriteLine("show active in any chat programs,the screensaver is disabled and ");
            Console.WriteLine("the computer will not lock! Anyone looking at you eaither locally ");
            Console.WriteLine("or remotely will think you are hard at work.");
            Console.WriteLine("");
            Console.WriteLine("Now go do something fun...I got your back ;)");
            Console.WriteLine("Oh yeah....if you close this window OR press `q' in this ");
            Console.WriteLine("window you are going to have to actually work.");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("This text will disappear in a 30 seconds. Just in case someone comes ");
            Console.WriteLine("by and reads your screen!");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Need custom coding? Kenneth.gore@gmail.com");
            while (Console.KeyAvailable == false)
            {
                Thread.Sleep(250);
                ConsoleKeyInfo cki = Console.ReadKey(true);

                if (cki.KeyChar == 'q')
                    break;
            }

        }

        public static void DisableDeviceSleep()
        {
           SetThreadExecutionState(EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS);
           preventSleepTimer = new System.Threading.Timer(new TimerCallback(PokeDeviceToKeepAwake), null, 0, timeOutinMS * 1000);
        }

        public static void EnableDeviceSleep()
        {

           preventSleepTimer.Dispose();
           preventSleepTimer = null;

        }

        private static void PokeDeviceToKeepAwake(object extra)
        {

            Counter++;
            try
            {
                   SetThreadExecutionState(EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS);
                   IntPtr Handle = FindWindow("SysListView32", "FolderView");

                   if (Handle == IntPtr.Zero)
                   {
                       SetForegroundWindow(Handle);
                       SendKeys.SendWait("%1");
                   }

                   if (Counter > 1)
                       Console.Clear();
            } 
            catch 
            {

            }
        }

        public static void GetSystemTimeOuts()  
        {
            sysTimeouts.BATTERYIDLETIMEOUT = -2;
            sysTimeouts.EXTERNALIDLETIMEOUT = -2;
            sysTimeouts.WAKEUPIDLETIMEOUT = -2;

            if (SystemParametersInfo(SPI_GETBATTERYIDLETIMEOUT, 0, ref batteryIdleTimer, 0) == 1)
                sysTimeouts.BATTERYIDLETIMEOUT = batteryIdleTimer;
            else
                sysTimeouts.BATTERYIDLETIMEOUT = -1;

            if (SystemParametersInfo(SPI_GETEXTERNALIDLETIMEOUT, 0, ref externalIdleTimer, 0) == 1)
                sysTimeouts.EXTERNALIDLETIMEOUT = externalIdleTimer;
            else
                sysTimeouts.EXTERNALIDLETIMEOUT = -1;

            if (SystemParametersInfo(SPI_GETWAKEUPIDLETIMEOUT, 0, ref wakeupIdleTimer, 0) == 1)
                sysTimeouts.WAKEUPIDLETIMEOUT = wakeupIdleTimer;
            else
                sysTimeouts.WAKEUPIDLETIMEOUT = -1;

        }
    }
}
2
2
2
2018-01-16 14:55:11 +0000

J'aime utiliser des options facile et intégrées ( pas de logiciel supplémentaire ), comme un script powerhell (merci https://dmitrysotnikov.wordpress.com/2009/06/29/prevent-desktop-lock-or-screensaver-with-powershell/ ) qui utilise le “f15” comme clé du succès (thx à la caféine. C'est en effet le moins perturbant)

param($minutes = 180)

write "... screen will be awake for $minutes"

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

 for ($i = 0; $i -lt $minutes; $i++) {
 write "... screen will be awake for" ($minutes-$i)
 Start-Sleep -Seconds 60    
 $myshell.sendkeys("{F15}")
}

Mettez ceci dans un fichier myScriptName.ps1 et démarrez le via le raccourci du bureau ou la ligne de commande:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop "C:\Users\myUser\Desktop\myScriptName.ps1"

MISE À JOUR: Peut-être qu'il y a eu un changement de la part de l'administrateur, mais cela ne fonctionne plus pour moi Maintenant je dois utiliser un script autohotkey-script de NBirnel : https://github.com/nbirnel/nosleep - ce travail est parfait, parce qu'il déplace la souris (sans distraire le travail)

1
1
1
2014-12-30 08:17:36 +0000

Dans mon cas, cette seule ligne a fait l'affaire :

SendKeys.Send("{CAPSLOCK}");

Il suffit de la mettre dans l'événement Timer_Tick et de régler l'intervalle de temporisation à par exemple 60000ms.

1
1
1
2017-05-23 06:00:59 +0000

Mouse Jiggler pourrait être une option https://mousejiggler.codeplex.com/

-1
-1
-1
2018-10-03 15:01:08 +0000

La bonne façon de procéder est de :

  • aller dans le registre où se trouve la politique
  • mettre la valeur à ce que vous voulez
  • et modifier les autorisations de la clé du registre
  • seulement refuser l'accès en écriture à quiconque sauf à vous-même
-5
-5
-5
2013-11-15 03:17:15 +0000

Vous devez désactiver le “verrouillage de l'écran”/“mode veille” dans le panneau de contrôle > options d'alimentation > modifier les paramètres du plan. Cliquez sur le menu déroulant “Mettre l'ordinateur en veille” et sélectionnez “jamais”.