Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я опять столкнулся с одни нюансом.
помогите решить если возможно.

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

Код: Выделить весь код
Option Explicit

Dim objWshShell

Dim intTime4Show                                                               ' Заданное (оно же максимально возможное) время показа сообщения
Dim intMinimumTime                                                             ' Минимальное время показа сообщения
Dim intTimeStartShowing                                                        ' Время начала показа сообщения
Dim intRetValue                                                                ' Возвращаемое значение метода .Popup


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

intTime4Show    = 60                                                           ' Заданное    время показа сообщения — 1 минута
intMinimumTime  = 5                                                           ' Минимальное время показа сообщения — 10 секунд

intTimeStartShowing = Timer                                                    ' Засекаем время

Do
    ' Выводим сообщение поверх всех окон [&H40000] на оставшееся на текущий момент,
    ' от заданного, время [intTime4Show - (Timer - intTimeStartShowing)]
    intRetValue = objWshShell.Popup( _
        "   УВАЖАЕМЫЕ КОЛЛЕГИ!" & Chr(13) & _
"Администратор домена сообщает, что....!", _
        intTime4Show - (Timer - intTimeStartShowing), _
        "СЛУЖБА СООБЩАЕТ!", _
        vbOKOnly + vbInformation + &H40000)
    
    ' Повторяем вывод сообщения, пока не будет выполнено одно из условий:
    ' 1. Истечёт отведённое время и сообщение будет закрыто по таймауту [intRetValue = -1]
    ' 2. Сообщение будет закрыто вручную и с момента первого показа
    '    сообщения до текущего момента пройдёт не менее минимального [intMinimumTime]
    '    времени [(Timer - intTimeStartShowing) > intMinimumTime]
Loop Until intRetValue = -1 Or (Timer - intTimeStartShowing) > intMinimumTime

Set objWshShell = Nothing

WScript.Quit 0

Отправлено: 17:03, 20-11-2012 | #10