Как предотвратить функцию автоматической блокировки на компьютере с XP с помощью VBscript - PullRequest
11 голосов
/ 16 декабря 2010

машина блокируется во время выполнения сценария автоматизации, это связано с большим интервалом между различными сценариями (это необходимо по некоторым причинам) Я хочу избежать этой функции автоматической блокировки. Проблема в том, что согласно политикам безопасности мы не можем отключить эту функцию с панели управления. Есть ли другой способ сохранить систему разблокированной?

Ответы [ 9 ]

18 голосов
/ 22 декабря 2010

Я сделал это ... Он посылает 2 ключа SCROLLLOCK, быстро, поэтому он не будет мешать (ну, в общем-то, ничего серьезного) любым приложениям. Он делает это каждые 60 секунд .... Ура!

set wsc = CreateObject("WScript.Shell")
Do
WScript.Sleep (60*1000)
wsc.SendKeys ("{SCROLLLOCK 2}")
Loop
6 голосов
/ 16 декабря 2010

Я думаю, что вы можете остановить блокировку, посылая нажатие клавиш через равные промежутки времени, поэтому я бы посоветовал посмотреть WScript.SendKeys Затем поместите его в режим сна, чтобы он отправлял его регулярно.

Просто будьте осторожны с тем, какой ключ вы отправляете, чтобы вы больше ничего не влияли.

2 голосов
/ 27 февраля 2015

Я использую пару файлов ...

Первый файл (Keep_Awake__start.vbs) не дает бодрствовать / разблокироваться.Второй файл (Keep_Awake__end.vbs) удобно завершает процесс, когда вы хотите вернуться к обычному процессу.

Первый файл ...

' Keep_Awake__start.vbs
' Graham Edwards

' Typical stored in Start Menu 
'
' Use Keep_Awake__start.vbs to keep the computer from inactivity-based lockouts.
' Use Keep_Awake__end.vbs to remove Keep_Awake__start.vbs

' Largely pulled from st0le response
' /3328468/kak-predotvratit-funktsiy-avtomaticheskoi-blokirovki-na-kompytere-s-xp-s-pomoschy-vbscript

' --- Define Object
    set wsc = CreateObject("WScript.Shell")

' --- Loop every so many minutes and change the scroll lock setting 
    Do
        ' Wait for ~2 minutes
        WScript.Sleep (2*60*1000)
        wsc.SendKeys ("{SCROLLLOCK 2}")
    Loop

Второй файл ...

' Keep_Awake__end.vbs
' Graham Edwards

' Use Keep_Awake__start.vbs to keep the computer from inactivity-based lockouts.
' Use Keep_Awake__end.vbs to remove Keep_Awake__start.vbs

' Largely pulled from Ansgar Wiechers response
' http://stackoverflow.com/questions/22324899/kill-a-vbscript-from-another-vbscript

' --- Define Object
    Set wmi = GetObject("winmgmts://./root/cimv2")

' --- Search and Destroy
    qry = "SELECT * FROM Win32_Process WHERE Name='wscript.exe' AND NOT " & _
    "CommandLine LIKE '%" & Replace(WScript.ScriptFullName, "\", "\\") & "%'"

    For Each p In wmi.ExecQuery(qry)
      p.Terminate
    Next

' --- Clean up
    Set wmi = Nothing ' Release the Application object

Файлы могут быть созданы из обычного текстового редактора и сохранены в любом месте (например, на рабочем столе).После сохранения файла с расширением .vbs он исполняется.Итак, вам просто нужно дважды щелкнуть значок файла, чтобы начать или закончить все (в зависимости от того, какой файл вы дважды щелкнете).

Вы можете сохранить Keep_Awake__start.vbs в папке автозагрузки Windows, чтобызапускается сразу после входа в систему.

1 голос
/ 11 ноября 2016

Самое простое решение, которое работает, - это открыть mp3 или видеофайл и непрерывно воспроизводить его в проигрывателе Windows Media (используйте функцию повтора и отключите звук в проигрывателе). Таким образом, заставка никогда не приходит или система никогда не блокируется.

0 голосов
/ 04 марта 2018

Я сделал это следующим образом

(внешний цикл = объявленная переменная)

'For 64 bit Excel.
Private Declare PtrSafe Function SetCursorPos Lib "user32" _
                        (ByVal x As Long, _
                        ByVal y As Long) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'For 32 bit Excel.
Private Declare Function SetCursorPos Lib "user32" _
                        (ByVal x As Long, _
                        ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long


 ' default variable
 private mousecounter as integer

(внутри процедуры)

Dim llCoord As POINTAPI
Dim activeXMousePos As Integer
Dim activeYMousePos As Integer

GetCursorPos llCoord
activeXMousePos = llCoord.Xcoord
activeYMousePos = llCoord.Ycoord

(внутри цикла):

        If mousecounter <= 2 Then
            SetCursorPos activeXMousePos - 1, activeYMousePos - 1
            mousecounter = mousecounter + 1
        End If

        If mousecounter > 2 Then
            SetCursorPos activeXMousePos + 2, activeYMousePos + 2
            mousecounter = 0
        End If

Итак - в основном этот код перемещает мышь на 1 пиксель влево и на 1 пиксель вправо на каждый интервал цикла.Вы можете объявить любые другие значения, но я обнаружил, что это движение мыши не беспокоит пользователей.

0 голосов
/ 25 августа 2017
Set wshShell =wscript.CreateObject("WScript.Shell")
do
  wscript.sleep 55000
  wshshell.sendkeys "{SCROLLLOCK}"
loop

Мы можем использовать этот код для предотвращения повторной разблокировки окна.

0 голосов
/ 19 сентября 2013

Я пробовал сценарии оболочки и планировал симуляцию движений мыши с помощью планировщика заданий - но вот что я нашел, это ЛУЧШИЙ из всех. + 1 за простоту .Он автоматически перемещает мышь на сдвинутый пиксель, поэтому экран не блокируется автоматически (хотя у вас есть возможность настроить это, если потребуется)

Ссылка: Auto Mouse Mover -http://www.murgee.com/auto-mouse-mover/

0 голосов
/ 18 апреля 2013

Используйте следующий код сценария VB, чтобы разблокировать компьютер:

Set objShell = CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaverIsSecure", "0" , "REG_SZ"
Wscript.Echo "Your machine remains unlocked"

Cheers !!

0 голосов
/ 16 декабря 2010

Если это происходит во время работы вашего пакета автоматизации, то используйте этот пакет автоматизации, чтобы время от времени дергать мышью.Я считаю, что хорошо работает, если у вас есть своя собственная функция сна, и как часть вашей функции сна, вы дергаете мышь.Используйте это для длинного интервала между сценариями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...