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

Hoe kan ik voorkomen dat een beleidsgeforceerde schermvergrendeling in Windows 7?

Onze bedrijfs-BOFH legt de instelling van de schermvergrendeling met een belachelijk korte vertraging op. Het is frustrerend en contraproductief.

Is er een manier om de automatische schermvergrendeling te voorkomen? Ik neem aan dat er geen manier is om de beleidsgeforceerde instelling te omzeilen, maar misschien is er een software die de activiteit van de gebruiker nabootst.

Gewoon vragen voordat ik een eeuwigdurend muiswiel installeer. (Snap je?)

Antwoorden (11)

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

Als Windows Media Player nog steeds is geïnstalleerd, kunt u een video on loop afspelen en deze minimaliseren (de voorbeeld “Wildlife” video’s werken hiervoor prima). Standaard wordt het scherm niet vergrendeld zolang er een video wordt afgespeeld.

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

Ik gebruik een script I title idle.vbs:

Dim objResult

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

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

Elke zes seconden schakelt dit snel over op het toetsenbord, waardoor Windows denkt dat er iemand met het toetsenbord bezig is, waardoor schermbeveiliging wordt voorkomen. Dit draait op vanillevensters, je hebt geen ontwikkel- of scriptgereedschappen nodig om het te gebruiken, maak gewoon een tekstbestand met .vbs als extensie en dubbelklik erop (of plaats het in je opstartitems).

Edit: je kunt dit script in je opstartitems zetten met

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

Voor meer informatie over de Choclatey (choco) CLI installer zie: https://chocolatey.org/

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

Een andere optie is freeware Cafeïne programma. Het is ook gratis voor commercieel gebruik. Vanaf de homepage van het programma:

Als u problemen heeft met het vergrendelen van uw PC of met het slapen gaan, houdt de cafeïne het programma wakker. Het werkt door elke 59 seconden een toetsdruk te simuleren, zodat uw machine denkt dat u nog steeds aan het toetsenbord werkt, dus zal het scherm niet vergrendelen of de screensaver activeren.

Cafeïne werkt door elke 59 seconden een F15-toets omhoog te simuleren. Van alle beschikbare toetsaanslagen is F15 waarschijnlijk het minst opdringerig (ik heb nog nooit een PC-toetsenbord met die toets gezien!), en het is het minst waarschijnlijk dat het je werk verstoort.

Deze kant-en-klare oplossing laat je ook toe om te controleren wanneer je het inschakelt en uitschakelt:

Dubbelklikken op het programmapictogram maakt de koffiekan leeg, wat het pictogram weergeeft, en schakelt het programma tijdelijk uit. Door er nogmaals op te dubbelklikken wordt de pot weer gevuld en blijft uw machine wakker.

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

U kunt een AutoIt -script maken om ofwel voortdurend op een ongebruikte toets te drukken (bijv. de num-lock, scroll-lock), een minuut of zo te laten slapen en te herhalen. Als u het toetsenbord veel gebruikt, kunt u de muis ook een paar pixels in elke richting laten bewegen.

Als u niet wilt dat het script continu wordt uitgevoerd, kunt u het ook als een geplande taak starten (als u toegang hebt) om het script te starten nadat de computer enige tijd inactief is geweest.

En dit is een zeer eenvoudig script om een onzichtbare muisbeweging uit te voeren, als je niet in de AutoIt syntax wilt komen:

While True
   Local $pos = MouseGetPos()
   MouseMove($pos[0]-1, $pos[1]-1, 0)
   MouseMove($pos[0], $pos[1], 0)
   Sleep(540000)
WEnd

Dit script beweegt de muiscursor een pixel in de linkse richting en keert daarna weer terug, en slaapt dan 9 minuten (540000 milliseconden). Wanneer het script draait, zie je het AutoIt icoontje in de lade. Je kunt het stoppen door met de rechtermuisknop op dit pictogram te klikken en de bijbehorende optie te kiezen.

Om een script te maken, installeer je AutoIt, klik je met de rechtermuisknop in een willekeurige map en kies je New > AutoIt v3 Script, noem het, klik je met de rechtermuisknop op dit nieuwe script, kies je Edit, plak je de bovenstaande code in en sla je het op. U kunt het zelfs compileren naar .exe (opnieuw, vanuit het contextmenu) om bijvoorbeeld vanuit Windows Scheduler te starten.

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

Er is een android app genaamd “Timeout Blocker” die met een interval trilt en waar je je muis op kunt zetten. Er staat echter dat je hem niet mag gebruiken op het werk. https://play.google.com/store/apps/details?id=com.isomerprogramming.application.timeoutblocker&hl=en ](https://play.google.com/store/apps/details?id=com.isomerprogramming.application.timeoutblocker&hl=en)

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

Compileer dit in Visual Studio of C# Express en voer het uit vanaf een commandoprompt (of dubbelklik erop). Vereist .NET 4.0 of hoger. Het doet alles wat je zoekt.

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

Ik gebruik graag easy en geïntegreerde opties ( geen extra software ), zoals een powershell-script (bedankt https://dmitrysotnikov.wordpress.com/2009/06/29/prevent-desktop-lock-or-screensaver-with-powershell/ ) dat de “f15” gebruikt als sleutel tot succes (thx tot cafeïne). Het is inderdaad het minst storend) “` 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}”) } “`

Zet dit in een myScriptName.ps1 en start het via de snelkoppeling op het bureaublad of de commandoregel:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop "C:\Users\myUser\Desktop\myScriptName.ps1"

UPDATE: Misschien was er een wijziging van de beheerder, maar dit werkt voor mij niet meer Nu moet ik een autohotkey-script van NBirnel gebruiken: https://github.com/nbirnel/nosleep - dit werk perfect , omdat het de muis beweegt (zonder afleiding van het werk)

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

In mijn geval deed alleen deze ene regel de truc:

SendKeys.Send("{CAPSLOCK}");

Zet hem gewoon in het Timer_Tick event en stel de timerinterval in op bijvoorbeeld 60000ms.

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

Muizenjiggler zou een optie kunnen zijn https://mousejiggler.codeplex.com/

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

De juiste manier om dit af te handelen is:

  • ga naar het register waar het beleid is
  • stel de waarde in op wat je wilt
  • en wijzig de register sleutel permissies
  • alleen Deny schrijftoegang voor iedereen behalve voor jezelf
-5
-5
-5
2013-11-15 03:17:15 +0000

U moet de “schermvergrendeling”/“slaapmodus” van het bedieningspaneel uitschakelen. Klik op het uitklapmenu voor “Zet de computer in de slaapstand” en selecteer “nooit”.